解决在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 相关文章推荐
PHP4之COOKIE支持详解
Oct 09 PHP
PHP5+UTF8多文件上传类
Oct 17 PHP
判断php数组是否为索引数组的实现方法
Jun 13 PHP
解析Ubuntu下crontab命令的用法
Jun 24 PHP
两千行代码的PHP学习笔记汇总
Oct 05 PHP
php使用PDO方法详解
Dec 27 PHP
Smarty foreach控制循环次数的一些方法
Jul 01 PHP
PHP技术开发微信公众平台
Jul 22 PHP
PHP将URL转换成短网址的算法分享
Sep 13 PHP
php 实现Hash表功能实例详解
Nov 29 PHP
php事务回滚简单实现方法示例
Mar 28 PHP
PHP常用函数之格式化时间操作示例
Oct 21 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网页显示各种语法错误
2013/09/23 PHP
firefo xml 读写实现js代码
2009/06/11 Javascript
jquery提示 "object expected"的解决方法
2009/12/13 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
jquery 实现窗口的最大化不论什么情况
2013/09/03 Javascript
js判断为空Null与字符串为空简写方法
2014/02/24 Javascript
判断复选框是否被选中的两种方法
2014/06/04 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
Javascript中的apply()方法浅析
2015/03/15 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
2015/06/03 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
2015/09/01 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
微信小程序新增的拖动组件movable-view使用教程
2017/05/20 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
跟老齐学Python之折腾一下目录
2014/10/24 Python
Python二分查找详解
2015/09/13 Python
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
python简易远程控制单线程版
2018/06/20 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
django中瀑布流写法实例代码
2019/10/14 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
Notino法国:购买香水和化妆品
2019/04/15 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
公积金单位接收函
2014/01/11 职场文书
仓库管理员岗位职责
2014/03/19 职场文书
《庐山的云雾》教学反思
2014/04/22 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
环保守法证明
2015/06/24 职场文书
三好学生主要事迹材料
2015/11/03 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
深入理解go缓存库freecache的使用
2022/02/15 Golang