php laravel左连接leftJoin多条where语句

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

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

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

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

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

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

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

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

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

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

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

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

作者其他文章

评论(0

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

    全部回复

    上滑加载中

    设置昵称

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

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

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