出于性能原因,我有一个查询需要使用 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/