解决在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网站在线人数统计
Apr 09 PHP
php empty函数 使用说明
Aug 10 PHP
PHP面向对象学习笔记之一 基础概念
Oct 06 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
Jan 23 PHP
destoon后台网站设置变成空白的解决方法
Jun 21 PHP
PHP查询快递信息的方法
Mar 07 PHP
PHP人民币金额转大写实例代码
Oct 02 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
May 27 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
Mar 06 PHP
php实现的简单多进程服务器类完整示例
Feb 01 PHP
PHP实现基本留言板功能原理与步骤详解
Mar 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 include的妙用,实现路径加密
2008/07/29 PHP
php生成图片验证码-附五种验证码
2015/08/19 PHP
php socket通信简单实现
2016/11/18 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
判断浏览器的javascript版本的代码
2010/09/03 Javascript
jQuery实现简单网页遮罩层/弹出层效果兼容IE6、IE7
2014/06/16 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
2016/11/04 Javascript
js通过classname来获取元素的方法
2016/11/24 Javascript
js实现消息滚动效果
2017/01/18 Javascript
Angular5中调用第三方js插件的方法
2018/02/26 Javascript
优雅的在React项目中使用Redux的方法
2018/11/10 Javascript
详解vue-cli 2.0配置文件(小结)
2019/01/14 Javascript
Vue组件的使用及个人理解与介绍
2019/02/09 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
简单了解前端渐进式框架VUE
2020/07/20 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
python判断windows隐藏文件的方法
2014/03/21 Python
Python实现批量下载文件
2015/05/17 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
python pygame实现五子棋小游戏
2020/10/26 Python
python3.6环境安装+pip环境配置教程图文详解
2019/06/20 Python
python3中替换python2中cmp函数的实现
2019/08/20 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
2020/05/13 Python
PyTorch中Tensor的数据类型和运算的使用
2020/09/03 Python
python 监控服务器是否有人远程登录(详细思路+代码)
2020/12/18 Python
python快速安装OpenCV的步骤记录
2021/02/22 Python
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
《中国的气候》教学反思
2014/02/23 职场文书
优秀员工获奖感言
2014/03/01 职场文书
办公室岗位职责范本
2015/04/11 职场文书
中标通知书格式
2015/04/17 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers