zoukankan      html  css  js  c++  java
  • php laravel左连接leftJoin多条where语句

    通常情况下我们在做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

  • 相关阅读:
    Python13_安装、解释器
    Python12_关于文件概念的讨论与序列化
    Python11_文件的读写
    which | whereis |locate |find
    tail命令 | head命令
    cat 命令|more命令|less命令
    数据库模型设计,第一范式、第二范式、第三范式简单例子理解
    json
    正则表达式
    SFTP相关命令
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15453352.html
Copyright © 2011-2022 走看看