解决在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 相关文章推荐
dedecms系统常用术语汇总
Apr 03 PHP
IIS6.0中配置php服务全过程解析
Aug 07 PHP
PHP的PSR规范中文版
Sep 28 PHP
ThinkPHP CURD方法之page方法详解
Jun 18 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
Oct 30 PHP
phpmyadmin中禁止外网使用的方法
Nov 04 PHP
php解析http获取的json字符串变量总是空白null
Mar 02 PHP
PHP QRCODE生成彩色二维码的方法
May 19 PHP
ThinkPHP 模板引擎使用详解
May 07 PHP
php如何计算两坐标点之间的距离
Dec 29 PHP
PHP中的empty、isset、isnull的区别与使用实例
Mar 22 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 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设计模式之委托模式定义与用法简单示例
2018/08/13 PHP
调试php程序的简单步骤
2019/10/04 PHP
laravel实现按月或天或小时统计mysql数据的方法
2019/10/09 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
在JavaScript中遭遇级联表达式陷阱
2007/03/08 Javascript
jQuery使用手册之二 DOM操作
2007/03/24 Javascript
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
JS判断元素为数字的奇异写法分享
2012/08/01 Javascript
JS操作iframe里的dom(实例讲解)
2014/01/29 Javascript
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
对new functionName()定义一个函数的理解
2014/05/22 Javascript
JavaScript实现的石头剪刀布游戏源码分享
2014/08/22 Javascript
nodejs 提示‘xxx’ 不是内部或外部命令解决方法
2014/11/20 NodeJs
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
Javascript ES6中数据类型Symbol的使用详解
2017/05/02 Javascript
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
详解webpack+ES6+Sass搭建多页面应用
2018/11/05 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
2019/05/22 Javascript
Node.js系列之连接DB的方法(3)
2019/08/30 Javascript
Element Carousel 走马灯的具体实现
2020/07/26 Javascript
[03:49]DOTA2英雄基础教程 光之守卫
2014/01/14 DOTA
Pandas:Series和DataFrame删除指定轴上数据的方法
2018/11/10 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
2019/05/08 Python
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
荷兰本土平价百货:HEMA
2017/10/23 全球购物
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
大学生创业感言
2014/01/25 职场文书
大学毕业生推荐信
2014/07/09 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
保送生自荐信
2015/03/06 职场文书
MySQL 常见存储引擎的优劣
2021/06/02 MySQL
详细了解MVC+proxy
2021/07/09 Java/Android