laravel - 三个表的内连接查询

时间:2017-10-10 08:51:36

标签: php mysql laravel laravel-5 laravel-5.3

我想将department d表加入department dl表和user u表。我在SQL查询中完成了这个。

SELECT distinct(dl.head),
       u.user_name,
       u.id
from department d
inner join department dl on d.parent_department_string_id=dl.string_id
inner join users u on dl.head=u.user_name
where d.sl_flag=1

我想在Laravel查询中做同样的事情。是否可以使用Laravel中的join加入同一个表?

1 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情。

$departmentData = DB::table('department AS d')
            ->innerJoin('department AS d1', function($join) {
                $join->on('d.parent_department_string_id', '=', 'd1.string_id');
            })
            ->innerJoin('users AS u', function($userJoin) {
                $userJoin->on('d1.head', '=', 'u.user_name');
            })
            ->where('d.sl_flag', '=', 1)
            ->select(\DB::raw('distinct(dl.head) AS head'), 'u.user_name', 'u.id')
            ->get();