laravel利用subquery使左连接查询右表数据唯一查询


如:表a,连接表b,b中有多条符合查询的记录

1、建立需要的子查询

  $sub = DB::table('b')->select(['aid'])->selectRaw('max(id) as id')->grouBy('id');

 

2、建立连接查询

  $_list = DB::table('a')->leftJoin(DB::raw('({$sub->toSql()}) as b),'a.id','=','b.aid)->get()

这样就可以使得左连接查询中右表记录只查询一条,避免左表记录重复出现。这里在只是筛选右表中第一条,其它条件暂时还没有实现。

开发中遇到的问题,先记录一下,防止以后再次出现。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM