美文网首页
laravel的leftJoin多个where条件

laravel的leftJoin多个where条件

作者: xudong7930 | 来源:发表于2020-03-19 11:23 被阅读0次

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

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

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

    并且关系(&&)且为字段名称,使用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');
        })
    

    或者关系(||),将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');
        })
    

    多条件查询,使用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);
        })
    

    相关文章

      网友评论

          本文标题:laravel的leftJoin多个where条件

          本文链接:https://www.haomeiwen.com/subject/nhbkyhtx.html