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

移动开发云端新模式探索实践 >>>   

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

 

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