解决在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(7) php 字符串相关应用
Mar 05 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
Mar 28 PHP
国产PHP开发框架myqee新手快速入门教程
Jul 14 PHP
PHP结合JQueryJcrop实现图片裁切实例详解
Jul 24 PHP
PHP编写登录验证码功能 附调用方法
May 19 PHP
php自动载入类用法实例分析
Jun 24 PHP
thinkPHP5.0框架URL访问方法详解
Mar 18 PHP
php文件上传及下载附带显示文件及目录功能
Apr 27 PHP
PHP单例模式简单用法示例
Jun 23 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
PHP7内核之Reference详解
Mar 14 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
Apr 06 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
初识laravel5
2015/03/02 PHP
在Windows系统下使用PHP生成Word文档的教程
2015/07/03 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
laravel 验证错误信息到 blade模板的方法
2019/09/29 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
js中传递特殊字符(+,&)的方法
2014/01/16 Javascript
jquery实现不包含当前项的选择器实例
2015/06/25 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
JQuery插件Marquee.js实现无缝滚动效果
2016/04/26 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
JavaScript中校验银行卡号的实现代码
2016/12/19 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
基于es6三点运算符的使用方法(实例讲解)
2017/10/12 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
python通过函数属性实现全局变量的方法
2015/05/16 Python
python让列表倒序输出的实例
2018/06/25 Python
基于opencv的selenium滑动验证码的实现
2020/07/24 Python
HTML5超文本标记语言的实现方法
2020/09/24 HTML / CSS
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
英国汽车座椅和婴儿车购物网站:Uber Kids
2017/04/19 全球购物
Kangol帽子官网:坎戈尔袋鼠
2018/09/26 全球购物
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
什么是抽象
2015/12/13 面试题
实用的简历自我评价
2014/03/06 职场文书
小学一年级数学教学计划
2015/01/20 职场文书
朋友离别感言
2015/08/04 职场文书
企业年会祝酒词
2015/08/11 职场文书
成人成长感言如何写?
2019/08/16 职场文书
python中sys模块的介绍与实例
2021/04/17 Python
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android
redis lua限流算法实现示例
2022/07/15 Redis