解决在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 相关文章推荐
PHP合并两个数组的两种方式的异同
Sep 14 PHP
php设置编码格式的方法
Mar 05 PHP
解析php中如何直接执行SHELL
Jun 28 PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
Jun 09 PHP
ThinkPHP中自定义错误页面和提示页面实例
Nov 22 PHP
php使用curl出现Expect:100-continue解决方法
Mar 03 PHP
yii2.0实现创建简单widgets示例
Jul 18 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 10 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
May 31 PHP
PHP implode()函数用法讲解
Mar 08 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
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
jQuery防止click双击多次提交及传递动态函数或多参数
2014/04/02 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
2015/02/28 Javascript
javacript获取当前屏幕大小
2016/06/04 Javascript
浅谈JS原生Ajax,GET和POST
2016/06/08 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
jQuery实现动态添加tr到table的方法
2016/12/26 Javascript
jQuery中map函数的两种方式
2017/04/07 jQuery
angular中实现控制器之间传递参数的方式
2017/04/24 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
详解在vue-cli项目中安装node-sass
2017/06/21 Javascript
浅谈Angularjs中不同类型的双向数据绑定
2018/07/16 Javascript
微信小程序云开发之使用云函数
2019/05/17 Javascript
[07:27]DOTA2卡尔工作室 英雄介绍水晶室女篇
2013/06/21 DOTA
Python实现简单状态框架的方法
2015/03/19 Python
python使用os.listdir和os.walk获得文件的路径的方法
2017/12/16 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
css3 flex实现div内容水平垂直居中的几种方法
2020/03/27 HTML / CSS
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
html5使用Drag事件编辑器拖拽上传图片的示例代码
2017/08/22 HTML / CSS
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
如何开发一个JQuery插件
2016/07/28 面试题
优秀求职信
2014/05/29 职场文书
食品安全承诺书范文
2014/08/29 职场文书
先进事迹演讲稿
2014/09/01 职场文书
县政府班子个人对照检查材料
2014/10/05 职场文书
2014年电工工作总结
2014/11/20 职场文书
2015年语文教研组工作总结
2015/05/23 职场文书
2016年公司新年寄语
2015/08/17 职场文书
详解php中流行的rpc框架
2021/05/29 PHP
Python实现的扫码工具居然这么好用!
2021/06/07 Python
解析在浏览器地址栏输入一个URL后发生了什么
2021/06/21 Servers