您的位置:首页 > 编程语言 > PHP开发

MYSQL关联查询(PHP)

2016-07-04 00:00 681 查看
摘要: MYSQL关联两个表查询比较好的方法。

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

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



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



方法一对应代码(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];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息