Yii2.0如何用一条sql语句连接自己查询,查找出同一张表的多个字段
2017-12-22| 程成| 1889| 1| Yii

最近工作写接口的时候,遇到这样一种情况:


在“客户表”中存在省份ID,市区ID,这两个字段对应的都是“地区表”的ID字段。其中在“地区表”中市区和省份通过parent_id字段相关联。


需求:通过一条sql语句,根据市区ID查找出客户数据,同时,省份名称和市区名称都需要。


Yii2.0实现:


$list = Kh::find()
            ->select(['kh.name', 'dq.name as cityname', 'dq_copy.name as province_name'])
            ->join('LEFT JOIN', 'dq', 'kh.cityid = dq.id')
            ->join('LEFT JOIN', 'dq as dq_copy', 'dq_copy.id = dq.parent_id')
            ->asArray()->all();


上面代码是在建立了对应表的model情况下实现的。查找出客户表的name,地区表的省份名称和城市名称。

这句代码用到了自己left join自己,很巧妙。


通过以上方法可以实现一条sql语句连接自己查询,查找出同一张表的多个字段。




×
作者:程成
QQ:492245711