解决在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 相关文章推荐
Mysql中limit的用法方法详解与注意事项
Apr 19 PHP
php 接口类与抽象类的实际作用
Nov 26 PHP
php 用checkbox一次性删除多条记录的方法
Feb 23 PHP
PHP XML操作的各种方法解析(比较详细)
Jun 17 PHP
PHP分页类集锦
Nov 18 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
Feb 08 PHP
php将数组转换成csv格式文件输出的方法
Mar 14 PHP
php.ini中的request_order推荐设置
May 10 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
Jul 10 PHP
discuz图片顺序混乱解决方案
Jul 29 PHP
Laravel中为什么不使用blpop取队列详析
Aug 01 PHP
PHP实现批量修改文件名的方法示例
Sep 18 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
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
PHP单例模式详解及实例代码
2016/12/21 PHP
php 常用的系统函数
2017/02/07 PHP
解决Laravel blade模板转义html标签的问题
2019/09/03 PHP
php5与php7的区别点总结
2019/10/11 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
JS中产生20位随机数以0-9为例也可以是a-z A-Z
2014/08/01 Javascript
浅谈Javascript线程及定时机制
2015/07/02 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
JSON键值对序列化和反序列化解析
2017/01/24 Javascript
js面向对象编程总结
2017/02/16 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
jQuery中使用validate插件校验表单功能
2019/05/24 jQuery
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
详解如何在JS代码中消灭for循环
2019/12/11 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
Python二分查找详解
2015/09/13 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
Python使用matplotlib绘制三维图形示例
2018/08/25 Python
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
分享PyCharm的几个使用技巧
2019/11/10 Python
详解selenium + chromedriver 被反爬的解决方法
2020/10/28 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
CSS3 不定高宽垂直水平居中的几种方式
2020/03/26 HTML / CSS
企业军训感想
2014/02/07 职场文书
2014办公室年度工作总结
2014/12/09 职场文书
大学生助学金感谢信
2015/01/21 职场文书
教师节慰问信
2015/02/15 职场文书