laravel 解决leftjoin带条件查询没有返回右表为NULL的记录问题
来源:互联网 发布:懒人淘宝商城 编辑:程序博客网 时间:2024/06/05 14:15
问题描述:在使用laravel的左联接查询的时候遇到一个问题,查询中带了右表一个筛选条件,导致结果没有返回右表为空的记录。
先附上代码:
DB::table('users as u') ->select('u.user_id','c.class') ->leftJoin('class as c','c.user_id','=','u.user_id') ->where('c.status','=',2) ->get();
解决方案:
1.在mysql的角度上说,直接加where条件是不行的,会导致返回结果不返回class为空记录,正确是写法应该是
select u.user_id,c.class from users u left join class c on u.user_id=c.user_id and c.status=2;
没错,正确写法是left join .. on .. and 而非 left join .. on .. where
2.那么,在laravel里这个mysql表达式的写法是怎样的,我查阅了多个手册。。。及国外网友求助问答,得到了以下答案
DB::table('users as u') ->select('u.user_id','c.class') ->leftJoin('class as c', function($join) { $join->on('c.user_id', '=', 'u.user_id') ->on('c.status', '=', '2'); }) ->get();
希望能帮到大家!
阅读全文
0 0
- laravel 解决leftjoin带条件查询没有返回右表为NULL的记录问题
- laravel中数据库查询leftJoin应注意的问题
- 查询数据库返回cursor,如何判断没有符合条件的记录。判断条件不是cursor==null 哦
- LeftJoin条件问题
- sql里面leftjoin多表的问题记录
- 解决PHP 编码中文返回时为null的问题
- 没有return的python,返回为null
- 解决mysql查询,in条件参数为带逗号的字符串,查询结果错误
- 查询值为null的记录
- sql查询条件为null的查询语句
- jquery easyui pagination分页带条件查询不能返回首页的问题
- 解决Oracle 查询条件带中文 出错问题
- mybatis查询的返回类型为基础类型(int、long等),但结果为null时的异常解决
- aspnet访问oracle 查询条件带汉字结果集为空的问题
- mybatis sum函数返回为null的解决方式,格式化小数千分位的问题
- android 移植 ffmpeg (三) 测试用例(解决avcodec_find_encoder(AV_CODEC_ID_H264)返回为NULL的问题)
- 解决AndroidStudio File类的Listfile返回值为null问题
- 解决返回json数据,属性值为null或空被省略的问题。
- logback打印mybatis sql语句
- FZU2281-Trades
- Axure RP 8教程
- Linux mysql 安装 配置
- CAD文件转jpg图片怎么用迅捷CAD转换器转
- laravel 解决leftjoin带条件查询没有返回右表为NULL的记录问题
- Hadoop学习(一)——总体学习
- NOIP 2016 Day2 T3 愤怒的小鸟
- 2018届注册会计师面授11个月全日制
- 盈透创始人 Thomas Peterffy
- Codeforces
- Java并发编程:volatile关键字解析
- 同步加载、异步加载和延迟加载
- HTTP协议(Requset、Response)