解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题


Posted in PHP onOctober 15, 2019

问题描述:在使用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的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
编写自己的php扩展函数
Oct 09 PHP
php 上传文件类型判断函数(避免上传漏洞 )
Jun 08 PHP
php empty,isset,is_null判断比较(差异与异同)
Oct 19 PHP
PHP几个数学计算的内部函数学习整理
Aug 06 PHP
在PHP中设置、使用、删除Cookie的解决方法
May 06 PHP
Codeigniter发送邮件的方法
Mar 19 PHP
常见的四种POST 提交数据方式(小总结)
Oct 08 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
Mar 09 PHP
php rmdir使用递归函数删除非空目录实例详解
Oct 20 PHP
Yii框架实现多数据库配置和操作的方法
May 25 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
Laravel 不同生产环境服务器的判断实践
Oct 15 PHP
解决Laravel5.5下的toArray问题
Oct 15 #PHP
laravel通过a标签从视图向控制器实现传值
Oct 15 #PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
Oct 15 #PHP
laravel 实现划分admin和home 模块分组
Oct 15 #PHP
laravel 根据不同组织加载不同视图的实现
Oct 14 #PHP
Laravel 创建可以传递参数 Console服务的例子
Oct 14 #PHP
laravel 自定义常量的两种方案
Oct 14 #PHP
You might like
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
PHP面向对象程序设计之接口用法
2014/08/20 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
微信 getAccessToken方法详解及实例
2016/11/23 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
从零开始学习jQuery (八) 插播:jQuery实施方案
2011/02/23 Javascript
Jquery中Ajax 缓存带来的影响的解决方法
2011/05/19 Javascript
js常用系统函数用法实例分析
2015/01/12 Javascript
跟我学习javascript的prototype使用注意事项
2015/11/17 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
基于Vue2.X的路由和钩子函数详解
2018/02/09 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
2019/03/12 Javascript
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
使用Python写CUDA程序的方法
2017/03/27 Python
机器学习10大经典算法详解
2017/12/07 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
2020/02/20 Python
Python enumerate内置库用法解析
2020/02/24 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
html5+css如何实现中间大两头小的轮播效果
2018/12/06 HTML / CSS
软件测试工程师结构化面试题库
2016/11/23 面试题
网上书店创业计划书
2014/01/12 职场文书
小学生新学期寄语
2014/01/19 职场文书
三关爱志愿服务活动方案
2014/08/17 职场文书
借款协议书
2014/09/16 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
党员自我剖析材料(群众路线)
2014/10/06 职场文书
党的群众路线教育实践活动整改落实情况自查报告
2014/10/28 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
施工现场安全管理制度
2015/08/05 职场文书