解决在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 相关文章推荐
dede3.1分页文字采集过滤规则详说(图文教程)续四
Apr 03 PHP
PHP IN_ARRAY 函数使用注意事项
Jul 24 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
php+memcache实现的网站在线人数统计代码
Jul 04 PHP
php实现用手机关闭计算机(电脑)的方法
Apr 22 PHP
php操纵mysqli数据库的实现方法
Sep 18 PHP
php注册审核重点解析(数据访问)
May 23 PHP
深入理解PHP的远程多会话调试
Sep 21 PHP
PHP设计模式之装饰器模式定义与用法详解
Apr 02 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
Nov 29 PHP
PHP设计模式之观察者模式定义与用法分析
Apr 04 PHP
php创建类并调用的实例方法
Sep 25 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
Zend的MVC机制使用分析(二)
2013/05/02 PHP
ThinkPHP中的关联模型注意点
2014/06/16 PHP
php有效防止同一用户多次登录
2015/11/19 PHP
php实现无限级分类查询(递归、非递归)
2016/03/10 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
Javascript 继承实现例子
2009/08/12 Javascript
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
2012/08/22 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
jQuery过滤选择器用法示例
2016/09/12 Javascript
JS实现探测网站链接的方法【测试可用】
2016/11/08 Javascript
JavaScript实现随机数生成器(去重)
2017/10/13 Javascript
浅谈NodeJs之数据库异常处理
2017/10/25 NodeJs
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
2018/11/22 Javascript
原生JavaScript实现随机点名表
2021/01/14 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
Python安装selenium包详细过程
2019/07/23 Python
Python 3.8 新功能全解
2019/07/25 Python
python算的上脚本语言吗
2020/06/22 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
python爬取豆瓣电影排行榜(requests)的示例代码
2021/02/18 Python
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
校园学雷锋活动月总结
2014/03/09 职场文书
2014标准社保办理委托书
2014/10/06 职场文书
井冈山红色之旅心得体会
2014/10/07 职场文书
体检通知范文
2015/04/21 职场文书
开天辟地观后感
2015/06/09 职场文书
教师教育教学随笔
2015/08/15 职场文书
python用字节处理文件实例讲解
2021/04/13 Python
Django如何创作一个简单的最小程序
2021/05/12 Python
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS