mysql - 有没有办法使用 Laravel 的 ORM 创建 STRAIGHT_JOIN?

标签 mysql laravel laravel-5

出于性能原因,我有一个查询需要使用 STRAIGHT_JOIN。查询的构建如下:

$query->join('tbl2 as b', function ($join) {
            $join->on('a.b_id', '=', 'b.id')
                ->where('b.x_id', $x);
        })

有没有办法强制查询使用STRAIGHT_JOIN?看起来这是不可能的,因为没有空间(就像 INNERT JOIN、LEFT JOIN 等那样)。

最佳答案

不,这是不可能的。

编译 SQL 时,Laravel 会硬编码连接类型和 JOIN 关键字之间的空格,因此,就像您所说的那样,无法说服它使用 STRAIGHT_JOIN。请参阅Illuminate\Database\Query\Grammars\Grammar::compileJoins() :

            $sql[] = "$type join $table on $clauses";

您必须run a raw query .

关于mysql - 有没有办法使用 Laravel 的 ORM 创建 STRAIGHT_JOIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37449266/

相关文章:

mysql - 通过eventid获取每个用户的最后一条记录

php - 如何将参数传递给 Laravel 5 中的隐式 Controller ?

javascript - 使用 React Native 进行基于标签的过滤

PHP MySQL WAMP - 数据库错误

php - 找不到 "wrong parameter count for mysql_query()"的原因

php - Laravel 存储/日志 - 哪些是正确的权限和用户/组?

php - 使用 php 页面编辑数据库行

mysql - 如何使用 where 语句比较 1 个表中的 2 个数据?

php - 如何修复 'ERROR 2002 (HY000): Can' t 通过套接字 '/var/run/mysqld/mysqld.sock' (2 "No such file or directory") 连接到本地 MySQL 服务器'

php - Laravel:从请求中检索绑定(bind)模型