MYSQL关联查询(PHP)
博客专区 > taxilmc 的博客 > 博客详情
MYSQL关联查询(PHP)
taxilmc 发表于1年前
MYSQL关联查询(PHP)
  • 发表于 1年前
  • 阅读 13
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: 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];
        }

 

共有 人打赏支持
粉丝 3
博文 14
码字总数 10216
×
taxilmc
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: