Laravel加入三张桌子,加入优先权

时间:2017-09-21 12:03:15

标签: php mysql laravel query-optimization laravel-5.3

我正在尝试在我的应用程序中加入三个表。您可以在下面查看示例表结构

Table A
----------------
| a_id |  b_fk |
----------------
| 1    |  2    |
----------------
| 2    |  2    |
----------------

Table b
----------------
| b_id |  c_fk |
----------------
| 1    |  1    |
----------------
| 2    |  1    |
----------------

Table C
----------------
| c_id |  value|
----------------
| 1    | aaa   |
----------------
| 2    | ccc   |
----------------

我想加入这三个表并使用Laravel查询构建器

实现join with precedence
SELECT * FROM a LEFT JOIN (b JOIN c ON (b.c_kf = c.id)) ON (a.b_fk = b.id);

我试图做这样的事情

DB::table('a')->leftJoin('b', function ($join){
    $join->leftjoin('c', 'b.c_fk', '=', 'c.id')
    ->on('a.b_fk', '=', 'b.id');
})

查询后面的形式

SELECT * FROM a LEFT JOIN b ON (a.b_fk = b.id);

有没有办法在Laravel中连接多个表并实现优先级?

0 个答案:

没有答案