Laravel left join 条件查询为何未返回右表数据?

2026-04-01 07:350阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计350个文字,预计阅读时间需要2分钟。

Laravel left join 条件查询为何未返回右表数据?

问题描述:在使用Laravel的左连接查询时,遇到一个问题。查询中包含了一个右表的选择条件,导致结果中没有返回右表为空的记录。

代码示例:DB::table('users as u') ->select('u.user_id', 'c.clas')

问题描述:在使用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表达式的写法是怎样的,我查阅了多个手册。。。

阅读全文

本文共计350个文字,预计阅读时间需要2分钟。

Laravel left join 条件查询为何未返回右表数据?

问题描述:在使用Laravel的左连接查询时,遇到一个问题。查询中包含了一个右表的选择条件,导致结果中没有返回右表为空的记录。

代码示例:DB::table('users as u') ->select('u.user_id', 'c.clas')

问题描述:在使用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表达式的写法是怎样的,我查阅了多个手册。。。

阅读全文