PHP的多表联查

大家好!
多表联查就是要查询的结果是需要获取多个表的内容,把它们的关系建立为一个临时存在的表;
多表联合查询是不可以进行索引优化查询速度的,所以一般情况下不建议使用;
多表联查使用inner join,在这里inner是可以省略的,如下:

比如: 有两个表,一个是父表成绩表 score 字段有id,studentid,mark(分数) 一个为子表学生姓名表 student 字段有id,sname, 查询出成绩大于80的学生有哪些? select sname from score as sc join student as st on sc.studentid=st.id on sc.mark>80; as 起别名调用; on相当于这个表下的字段; sc.studentid就是score表下的studentid; 在TP框架中:例如:3个表myrelease(发布)user(用户)image(图片)查询文章发布表进而对user和image进行查询获取数据$myrelease = M('myrelease')->field('user.*, myrelease.*')// 将user表下ID与myrelease下的user_id进行匹配->join('user on user.id = myrelease.user_id')->where("myrelease.id=1")//->where("myrelease.status=0 and myrelease.is_delete=0")->order("myrelease.id desc")->select(); foreach ($myrelease as $k => $v) { // 获取每次循环的id $myreleaseid = $myrelease[$k]['id']; // 使用循环遍历把images表中的图片插入myrelease表中,images为2维数组 $myrelease[$k]['images'] = M('images')->field('imageurl')->where("my_id = '{$myreleaseid}'")->select(); }进而获取数据达到 多表联查

【PHP的多表联查】

    推荐阅读