解决在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数组函数序列之in_array() - 查找数组中是否存在指定值
Nov 07 PHP
php并发对MYSQL造成压力的解决方法
Feb 21 PHP
Zend Studio 实用快捷键一览表(精心整理)
Aug 10 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
Apr 29 PHP
ThinkPHP调用百度翻译类实现在线翻译
Jun 26 PHP
ThinkPHP中ajax使用实例教程
Aug 22 PHP
详解PHP中的mb_detect_encoding函数使用方法
Aug 18 PHP
php验证码的制作思路和实现方法
Nov 12 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
Dec 15 PHP
Lumen timezone 时区设置方法(慢了8个小时)
Jan 20 PHP
如何通过Apache在本地配置多个虚拟主机
Jul 29 PHP
phpcmsv9.0任意文件上传漏洞解析
Oct 20 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
1982年日本摄影师镜头下的中国孩子 那无忧无虑的童年
2020/03/12 杂记
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
php解决crontab定时任务不能写入文件问题的方法分析
2019/09/16 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
BootStrap实现带有增删改查功能的表格(DEMO详解)
2016/10/26 Javascript
解决给dom元素绑定click等事件无效问题的方法
2017/02/17 Javascript
Bootstrap超大屏幕的实现代码
2017/03/22 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
2017/04/23 jQuery
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
微信小程序导航栏跟随滑动效果的实现代码
2019/05/14 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
vuex实现购物车功能
2020/06/28 Javascript
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
Python 使用requests模块发送GET和POST请求的实现代码
2016/09/21 Python
Python实现自动登录百度空间的方法
2017/06/10 Python
Python2和Python3中print的用法示例总结
2017/10/25 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
用python画一只可爱的皮卡丘实例
2019/11/21 Python
python和node.js生成当前时间戳的示例
2020/09/29 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
Html5与App的通讯方式详解
2019/10/24 HTML / CSS
德国家具在线:Fashion For Home
2017/03/11 全球购物
全球速卖通俄罗斯站:AliExpress俄罗斯
2019/06/17 全球购物
C#如何调用Windows程序打开一个文档
2014/12/26 面试题
预备党员转正考核材料
2014/06/03 职场文书
机电一体化应届生求职信
2014/08/09 职场文书
杜甫草堂导游词
2015/02/03 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书
考生诚信考试承诺书(2016版)
2016/03/25 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript