laravel测试重连数据库(解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题)
类别:编程学习 浏览量:1352
时间:2021-10-01 01:09:44 laravel测试重连数据库
解决在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(); |
希望能帮到大家!
以上这篇解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/php_girl/article/details/77478429
您可能感兴趣
- laravel框架知识点(Laravel 不同生产环境服务器的判断实践)
- laravel 后台管理框架(laravel-admin 管理平台获取当前登陆用户信息的例子)
- laravel操作技巧(Laravel+Intervention实现上传图片功能示例)
- laravel框架详解(laravel 5.3 单用户登录简单实现方法)
- laravel在中间件内生成参数并且传递到控制器中的2种姿势(laravel在中间件内生成参数并且传递到控制器中的2种姿势)
- laravel判断变量为空(Laravel模糊查询区分大小写的实例)
- laravel框架的业务流程顺序(Laravel+Dingo/Api 自定义响应的实现)
- laravel授权使用方法(Laravel 自带的Auth验证登录方法)
- laravel 表单验证图片(Laravel 自动生成验证的实例讲解:login / logout)
- laravel自定义命令(laravel-admin select框默认选中的方法)
- laravelblade组件(laravel 验证错误信息到 blade模板的方法)
- laravel如何设置默认模块(laravel-admin 中列表筛选方法)
- laravel命令控制器怎么设置(Laravel获取当前请求的控制器和方法以及中间件的例子)
- laravel使用教程(基于Laravel5.4版本的基本增删改查操作方法)
- laravel关闭错误提示(解决laravel session失效的问题)
- laravel高级用法(Laravel5.1框架注册中间件的三种场景详解)
- 全椒人,你还记得吗 那年,那人,那网,那些我们的青春记忆(全椒人你还记得吗)
- 全椒人在苏州10周年联谊会在苏州举办(全椒人在苏州10周年联谊会在苏州举办)
- 这个全椒人被通报表彰,看看你认识吗(这个全椒人被通报表彰)
- 全椒人,38年集体回忆 1980-2018 ,看完不要哭(全椒人38年集体回忆)
- 董元奔吟咏历代文人 1012新旧均可 全椒人张璪 1022 -1093(董元奔吟咏历代文人)
- 泪目 这位 刷屏 的英雄,是全椒人的骄傲(泪目这位刷屏)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9