2017-10-10 12 views
0

テーブルとuser uテーブルを持つdepartment dテーブルに参加したいと思います。私はこれをSQLクエリで行っています。laravel - 3つのテーブルの内部結合クエリ

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を使用して同じテーブルに参加することは可能ですか?

答えて

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(); 
関連する問題