首页 > Web开发 > 详细

php laravel左连接leftJoin多条where语句

时间:2020-07-13 21:59:32      阅读:64      评论:0      收藏:0      [点我收藏+]

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

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

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‘);
      })
    PHP
  2. 或者关系(||),将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‘);
      })
    PHP
  3. 多条件查询,使用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);
      })
    PHP

happy coding !

php laravel左连接leftJoin多条where语句

原文:https://www.cnblogs.com/kevin-yang123/p/13295839.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!