tp5.1 多表查询笔记

        $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'

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值