解决在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 相关文章推荐
桌面中心(一)创建数据库
Oct 09 PHP
php pcntl_fork和pcntl_fork 的用法
Apr 13 PHP
提升PHP性能的21种方法介绍
Jun 25 PHP
Linux编译升级php的详细方法
Nov 04 PHP
ThinkPHP令牌验证实例
Jun 18 PHP
php生成二维码时出现中文乱码的解决方法
Dec 18 PHP
一个完整的php文件上传类实例讲解
Oct 27 PHP
汇总PHPmailer群发Gmail的常见问题
Feb 24 PHP
php-beanstalkd消息队列类实例分享
Jul 19 PHP
laravel使用Faker数据填充的实现方法
Apr 12 PHP
PHP实现一个限制实例化次数的类示例
Sep 16 PHP
PHP中关于php.ini参数优化详解
Feb 28 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-FPM实现性能优化
2016/03/31 PHP
PHP二维关联数组的遍历方式(实例讲解)
2017/10/18 PHP
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
一些有用的JavaScript和jQuery的片段分享
2011/08/23 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
2012/06/20 Javascript
mailto的使用技巧分享
2012/12/21 Javascript
Javascript中Event属性搜集整理
2013/09/17 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
用Javascript获取页面元素的具体位置
2013/12/09 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
2017/11/20 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
使用vue-cli打包过程中的步骤以及问题的解决
2018/05/08 Javascript
Vue瀑布流插件的使用示例
2018/09/19 Javascript
vue中,在本地缓存中读写数据的方法
2018/09/21 Javascript
JS实现点星星消除小游戏
2020/03/24 Javascript
35个Python编程小技巧
2014/04/01 Python
Python入门篇之字典
2014/10/17 Python
Python socket编程实例详解
2015/05/27 Python
利用Anaconda完美解决Python 2与python 3的共存问题
2017/05/25 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
python实现将汉字保存成文本的方法
2018/11/16 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
目前不被任何主流浏览器支持的CSS3属性汇总
2014/07/21 HTML / CSS
室内设计专业个人的自我评价
2013/10/19 职场文书
探矿工程师自荐信
2014/01/24 职场文书
超市促销活动方案
2014/03/05 职场文书
会计与出纳自荐书范文
2014/03/16 职场文书
学习交流会主持词
2014/04/01 职场文书
自我管理的活动方案
2014/08/25 职场文书
农村党支部书记党群众路线四风问题整改措施
2014/09/26 职场文书
社保转移委托书范本
2014/10/08 职场文书
关于Python使用turtle库画任意图的问题
2022/04/01 Python