解决在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之第六天
Oct 09 PHP
php笔记之常用文件操作
Oct 12 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 PHP
php后退一页表单内容保存实现方法
Jun 17 PHP
php下载文件的代码示例
Jun 29 PHP
PHP 读取大文件的X行到Y行内容的实现代码
Jun 24 PHP
php发送post请求的三种方法
Feb 11 PHP
php实现随机生成易于记忆的密码
Jun 19 PHP
yii2使用gridView实现下拉列表筛选数据
Apr 10 PHP
PHP数据库编程之MySQL优化策略概述
Aug 16 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 PHP
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
Apr 01 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
屏蔽浏览器缓存另类方法
2006/10/09 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
获取焦点时,利用js定时器设定时间执行动作
2010/04/02 Javascript
jQuery实现点击后标记当前菜单位置(背景高亮菜单)效果
2015/08/22 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
jQuery多个版本和其他js库冲突的解决方法
2016/08/11 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
2016/12/20 Javascript
快速搭建vue2.0+boostrap项目的方法
2018/04/09 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
jquery实现直播视频弹幕效果
2020/02/25 jQuery
JS异步宏队列微队列原理详解
2020/09/09 Javascript
详解vue3中组件的非兼容变更
2021/03/03 Vue.js
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
python中的列表推导浅析
2014/04/26 Python
python地震数据可视化详解
2019/06/18 Python
python3 线性回归验证方法
2019/07/09 Python
python中的&&及||的实现示例
2019/08/07 Python
python 实现return返回多个值
2019/11/19 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
python小程序之4名牌手洗牌发牌问题解析
2020/05/15 Python
recorder.js 基于Html5录音功能的实现
2020/05/26 HTML / CSS
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
青年教师典范事迹材料
2014/01/31 职场文书
平面设计专业大学生职业规划书
2014/03/12 职场文书
勾股定理课后反思
2014/04/26 职场文书
会议主持词开场白
2015/05/28 职场文书
周恩来的四个昼夜观后感
2015/06/03 职场文书
首都博物馆观后感
2015/06/05 职场文书
何玥事迹观后感
2015/06/16 职场文书
创业计划书之溜冰场
2019/10/25 职场文书