php laravel左连接leftJoin多条where语句

举报
lxw1844912514 发表于 2022/03/29 01:17:45 2022/03/29
【摘要】 通常情况下我们在做leftjoin连接时需要对不止一个条件进行进行匹配,这时候就需要使用闭包方式,如下: leftjoin('db', function ($join) {···}); leftjoin多条件查询,无非以下三种情况。 并且关系(&&)且为字段名称,使用on...

通常情况下我们在做leftjoin连接时需要对不止一个条件进行进行匹配,这时候就需要使用闭包方式,如下:

leftjoin('db', function ($join) {···}); 
    

leftjoin多条件查询,无非以下三种情况。

  1. 并且关系(&&)且为字段名称,使用on,代码示例如下:

      
  1. $roomUuid = 1;
  2. $chatInfo = DB::table('chat_info')
  3. ->where('chat_info.room_uuid', $roomUuid)
  4. ->leftJoin('user_rooms', function ($join) {
  5. $join->on('user_rooms.user_uuid', '=', 'chat_info.user_uuid')
  6. ->on('user_rooms.room_uuid', '=', 'chat_info.room_uuid');
  7. })
  1. 或者关系(||),将on改为orOn,代码示例如下:

      
  1. $roomUuid = 1;
  2. $chatInfo = DB::table('chat_info')
  3. ->where('chat_info.room_uuid', $roomUuid)
  4. ->leftJoin('user_rooms', function ($join) {
  5. $join->on('user_rooms.user_uuid', '=', 'chat_info.user_uuid')
  6. ->orOn('user_rooms.room_uuid', '=', 'chat_info.room_uuid');
  7. })
  1. 多条件查询,使用where,并使用use传递参数,代码示例如下:

      
  1. $roomUuid = 1;
  2. $chatInfo = DB::table('chat_info')
  3. ->where('chat_info.room_uuid', $roomUuid)
  4. ->leftJoin('user_rooms', function ($join) use ($chatInfo) {
  5. $join->on('user_rooms.user_uuid', '=', 'chat_info.user_uuid')
  6. ->where('user_rooms.room_uuid', '=', $chatInfo);
  7. })

原文地址:http://www.fidding.me/article/40

文章来源: blog.csdn.net,作者:lxw1844912514,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/lxw1844912514/article/details/100027847

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。