解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
发布:smiling 来源: PHP粉丝网 添加日期:2022-01-04 19:52:22 浏览: 评论:0
今天小编就为大家分享一篇解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。
问题描述:在使用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();
希望能帮到大家!
Tags: laravel leftjoin NULL
相关文章
- ·Laravel 5.6中的CURD操作(代码示例详解)(2020-01-15)
- ·如何在laravel 5中创建用于XSS防御的中间件? (2020-01-16)
- ·关于Laravel重定向的七种方法详解(2020-01-26)
- ·如何在laravel 5中使用DB事务?(2020-01-31)
- ·Laravel中如何给图片加水印?(2020-04-05)
- ·Laravel框架数据库CURD操作、连贯操作总结(2021-04-10)
- ·Laravel框架路由配置总结、设置技巧大全(2021-04-10)
- ·Laravel框架中扩展函数、扩展自定义类的方法(2021-04-10)
- ·跟我学Laravel之快速入门(2021-04-16)
- ·跟我学Laravel之安装Laravel(2021-04-16)
- ·跟我学Laravel之配置Laravel(2021-04-16)
- ·跟我学Laravel之请求(Request)的生命周期(2021-04-16)
- ·跟我学Laravel之路由(2021-04-16)
- ·跟我学Laravel之请求与输入(2021-04-17)
- ·跟我学Laravel之视图 & Response(2021-04-17)
- ·laravel安装和配置教程(2021-04-19)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)