2017-03-07 15 views
0

テーブル「payments」には、次のものが含まれています。 id client_id user_id とその支払いについて。double join sql同じテーブル

私が持っている別のテーブルのユーザー ID firstnameの middlename 姓 機能(クライアントまたは管理者)

イム

$payments = Payment::findpayments() 
    ->select('users.firstname', 'users.middlename', 'users.lastname', 'payments.*') 
    ->join('users','payments.client_id', '=', 'users.id') 
    ->where('payments.id', '=', $id) 
    ->get(); 

は今FIRSTNAMEなどから取得イム次のSQLクエリを使用して、ユーザーに参加クライアントが、私はfirstname middlename姓をクライアントのために2回取得する必要があります。そして、管理者は同じテーブルに二重に結合する方法を考えていますか?

答えて

0

エイリアシングで二度結合できます。これらの行で何か

->join('users','payments.client_id', '=', 'users.id') 
->join('users as admin','payments.client_id', '=', 'admin.admin_id') 

ちょうどあなたがそれらを適切に結合することを確認し、それらの別名あなたと同じくらい長い間、私はそれは大丈夫だと思います。

ちょうどあなたが、私はそれをしようとします

->join('users','payments.client_id', '=', 'users.id') 
->join('users as admin','payments.client_id', '=', 'admin.admin_id') 
->select('users.name', 'admin.name as admin_name') 
+0

おかげのような選択でも、それらのエイリアスに必要に留意してください! – Kevin

+0

クール、それが動作する場合は、私の答えをマークすることを忘れないでください。ありがとう:) – EddyTheDove

関連する問題