$list=Db::name('basic')
->alias('b')
->Join('agent_level al','al.id=b.level')
->Join('agent_area aa','aa.id=b.area_id')
->where('type','1')
->where($arr)
->field('b.*,al.name as level_name,aa.name as area_name')
->select();
//相当于SQL语句
SELECT b.*,al.name as level_name,aa.name as area_name
FROM basic as b
JOIN agent as a ON b.id=a.bid
JOIN agent_level as al ON b.level=al.id
JOIN agent_area as aa ON b.area_id=aa.id
WHERE type=1 AND b.id=10001 AND b.`level`=1;"
在使用了模型类的关联模型后,发现一点都不好用,还是使用SQL 语句来的更方便一些
联表去重
$list=Db::name('tags')
->alias('t')
->distinct(true)
->where('t.tagType','=',$tagType)
->where('t.tag','=',$tag)
->Join('word_tags wt','wt.tagid=t.id')
->Join('word w','w.id=wt.wordid')
->field('w.word')
->select();
相当于sql语句
SELECT DISTINCT
`w`.`word`
FROM
`tags` `t`
INNER JOIN `word_tags` `wt` ON `wt`.`tagid` = `t`.`id`
INNER JOIN `word` `w` ON `w`.`id` = `wt`.`wordid`
WHERE
`t`.`tagType` = 'py'
AND `t`.`tag` = 'a'