php mysql 用join查询多表联合数据时,如何查询提高查询速度,请各位大神给点建议

昊喵喵博士 2016-08-15 01:56:20
$pj = M('pj as p');
$tea = M('teacher');
$data = array();
/****************************************/

$where["departmentid"] = $departmentid;

$te = $tea->field('name,username as id,departmentid')->where($where)->select();

foreach ($te as $key => $value) {
$teacherid["teacherid"] = $value["id"];
$pjgl = $pj
->field('p.*,tp.name as name,tp.typename,tp.type,tp.roleid,tp.rolename')
->join('testpaper as tp on tp.id=p.testpaperid')
->where($teacherid)
->select();
if (count($pjgl)>0){
$value["children"] = $pjgl;
$data[] = $value;

}
}
$this->ajaxReturn($data);
...全文
554 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
码无边 2016-08-17
  • 打赏
  • 举报
回复
避免循环嵌套查询,能一次查询出来的,不要做2次操作。或者单表关联的数据不大,单个表查询,避免join。
xuzuning 2016-08-17
  • 打赏
  • 举报
回复
你在 foreach 循环内执行查询,自然效率不会高 既然 foreach 循环内都 join 了,那么为何不整体来个 join?
okgef 2016-08-17
  • 打赏
  • 举报
回复
我一般情况下都是用单表查询,一个表有三十多个列。……导致这个表中有好多个UNIQUE KEY这会不会有点不好
傲雪星枫 2016-08-15
  • 打赏
  • 举报
回复
循环查询,只有减少循环的次数,才可以提高效率。 应该在表结构中修改,使查询加速,或插入数据时增加记录入一些用于查询的表

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧