解决在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中的正规表达式(一)
Oct 09 PHP
PHP小技巧搜集,每个PHPer都来露一手
Jan 02 PHP
php $_SERVER当前完整url的写法
Nov 12 PHP
php preg_filter执行一个正则表达式搜索和替换
Feb 27 PHP
PHP生成Gif图片验证码
Oct 27 PHP
php阿拉伯数字转中文人民币大写
Dec 21 PHP
PHP编程求最大公约数与最小公倍数的方法示例
May 29 PHP
PHP数据分析引擎计算余弦相似度算法示例
Aug 08 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
Aug 10 PHP
PHP获取二叉树镜像的方法
Jan 17 PHP
PHP常见的几种攻击方式实例小结
Apr 29 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
德劲1102收音机的打理维修案例
2021/03/02 无线电
php cli 方式 在crotab中运行解决
2010/02/08 PHP
ThinkPHP自动完成中使用函数与回调方法实例
2014/11/29 PHP
javascript 类方法定义还是有点区别
2009/04/15 Javascript
javascript 内存回收机制理解
2011/01/17 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
jquery实现页面图片等比例放大缩小功能
2014/02/12 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
JS函数定义方式的区别介绍
2016/03/22 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
微信小程序中weui用法解析
2019/10/21 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
JS实现滑动插件
2020/01/15 Javascript
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
python字符串过滤性能比较5种方法
2017/06/22 Python
如何使用Flask-Migrate拓展数据库表结构
2019/07/24 Python
python爬取Ajax动态加载网页过程解析
2019/09/05 Python
python mqtt 客户端的实现代码实例
2019/09/25 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
2020/01/06 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
python中sort sorted reverse reversed函数的区别说明
2020/05/11 Python
浅谈pymysql查询语句中带有in时传递参数的问题
2020/06/05 Python
Python venv虚拟环境配置过程解析
2020/07/08 Python
莫斯科的韩国化妆品店:Sifo
2019/12/04 全球购物
高中生学习总结的自我评价范文
2013/10/13 职场文书
《逃家小兔》教学反思
2014/02/23 职场文书
捐赠仪式主持词
2014/03/19 职场文书
领导班子作风建设年个人整改措施
2014/09/29 职场文书
房屋所有权证明
2014/10/20 职场文书
nginx 防盗链防爬虫配置详解
2021/03/31 Servers