美文网首页
php laravel左连接leftJoin多条where语句

php laravel左连接leftJoin多条where语句

作者: Fidding | 来源:发表于2018-04-18 16:55 被阅读0次

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

happy coding !

相关文章

  • php laravel左连接leftJoin多条where语句

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

  • laravel的leftJoin多个where条件

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

  • Mysql知识点

    左连接右连接:左连接where只影向右表,右连接where只影响左表 内连接:显示左右边共有的 executeUp...

  • android sqlite数据库 修改数据

    修改数据也需要懂得使用where多条件语句 条件表达式 =,!=,>,<,>=,<= 多条件 and or , a...

  • 04动态sql

    学习以下动态sql语句 if(多条件动态拼接)2)where(解决where and/or情况)3)set(解决u...

  • SQL优化之多表join(待续)

    如何判断驱动表 左连接,如果没有where条件,则左表为驱动表 右连接,如果没有where条件,右表为驱动表 左连...

  • 一张图看懂 SQL 的各种 join 用法

    从数学的角度看,是集合的操作。比如有where语句的内连接,相当于取交集。有的是 左连接 - 内连接当然,这一切的...

  • Oracle学习(2)

    多表查询: 会出现笛卡尔积,为了避免出现笛卡尔积,要使用where 语句对字段进行关联操作 左右连接 (+)在=左...

  • 数据库左连接和右连接有什么区别

    数据库中的左连接和右连接的区别可以概括为一句话来表示即左连接where只影响右表,右连接where只影响到左表 【...

  • left join and 和 where and 的区别

    问:left join on后and连接和where后用and连接 答:left join左连接,左表所有数据拼接...

网友评论

      本文标题:php laravel左连接leftJoin多条where语句

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