如何使用Laravel Query构建器编写嵌套连接?

时间:2016-07-21 22:11:47

标签: php sql postgresql laravel join

我有下一个连接顺序的SQL查询(两个JOIN' s嵌套在LEFT JOIN)中:

SELECT *
FROM mytable
LEFT JOIN table1
  JOIN table2 ON table2.id = table1.document_id
  JOIN table3 ON table3.content_id = table2.id
ON table1.link_id = mytable.link_id

如何使用Laravel Query构建器编写此查询?

我的方式:

$query = Mytable::select('*')
    ->leftJoin(DB::raw('table1
        JOIN table2 ON table2.id = table1.document_id
        JOIN table3 ON table3.content_id = table2.id
    '), 
    'table1.link_id', '=', 'mytable.link_id');

它有效,但没有DB :: raw()可以做任何事情吗?也许与$join->nest()

1 个答案:

答案 0 :(得分:0)

联接没有嵌套,它们只是用来限制可行记录的数量。

$query = Mytable::select('*') ->leftJoin('table1', 'table1.link_id', '=', 'mytable.link_id') ->join('table2', 'table2.id', '=', 'table1.document_id') ->join('table3 ', 'table3.content_id', '=', 'table2.id');