博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MYSQL关联查询(PHP)
阅读量:6835 次
发布时间:2019-06-26

本文共 1022 字,大约阅读时间需要 3 分钟。

hot3.png

今天在写了一个数据库查询的函数,不过被老大轻喷了。的确之前的查询方式不好,在此整理贴下。

有时候我们需要对两张表或多张表进行关联查询。如下图:

方法一:对人员表中的每一项,都去查询部门表。我之前使用的方法...每次都要查询,浪费时间,不推荐。

方法一对应代码(PHP-THINKPHP):

$User = D('User');$list = $User->where(true)->select();$Depart= D('Department');        $num = 0;        foreach($list as $one){            $id = $one['depart_id'];            $result = $Depart->where("depart_id = $id")->find();            $list[$num]['depart_name'] = $result['depart_name'];            num++;        }dump($list);

 

方法二:把人员表中每一项的部门ID组成数组,统一用 IN 查询。之后使用的方法..只用查询一次数据库。

方法二对应代码(PHP-THINKPHP):

$User = D('User');$list = $User->where(true)->select();$Depart= D('Department');        $idlist = array();        foreach($list as $one){            $id = $one['depart_id'];            $idlist[] = $id;        }        $map['depart_id'] = array('in',$idlist);        $result = $Depart->where($map)->Field("depart_name")->select();        foreach($list as $k=>$v){            $list[$k]['depart_name'] = $result[$k];        }

 

转载于:https://my.oschina.net/mcstudio/blog/705907

你可能感兴趣的文章
.Net中的5种事务总结
查看>>
为什么 Git 比 SVN 好
查看>>
关于Qt的MVC模型思想(转载)
查看>>
Vagrant支持Amazon AWS和Rackspace
查看>>
JNDI全攻略(二)(转)
查看>>
POJ1463:Strategic game(树形DP)
查看>>
SPOJ LCS(Longest Common Substring-后缀自动机-结点的Parent包含关系)
查看>>
Tuning 05 Sizing other SGA Structure
查看>>
用 Qt Creator 开发非 Qt 的 C/C++ 程序
查看>>
Android-Cannot merge new index 66195 into a non-jumbo instruction的解决的方法
查看>>
解决 com.sun.*包导入错误
查看>>
【WP 8.1开发】如何动态生成Gif动画
查看>>
C#零基础入门08:代码规范
查看>>
关于php的mysqlnd驱动
查看>>
Response
查看>>
人人都看得懂的正则表达式教程
查看>>
python matplotlib 绘图
查看>>
Uncaught RangeError: Maximum call stack size exceeded解决思路
查看>>
运用.net core配合VS 2015制作nuget包
查看>>
JSP三大指令 /9大内置对象 /Javabean / EL
查看>>