私は3つのテーブルを持っています
1)ユーザー-1つの外部キー、状態のIDを参照するstate_id 2)user_details-2つの外部キー-ユーザーのIDを参照するuser_id-状態のIDを参照するproperty_state_id
3)状態
これらの3つのテーブルを結合して、ユーザー情報、ユーザー詳細情報、およびstate_idとproperty_state_idの両方の状態からの情報を取得するにはどうすればよいですか?
私はこのようにlaravelで書いています
User::where('users.id', $id)
->leftJoin('states', 'users.state_id', '=', 'states.id')
->leftJoin('user_details', 'user_details.user_id', '=', 'users.id')
->first();
状態テーブルを2回結合できないようです。これにはどのような解決策がありますか?
結合で同じテーブルを複数回結合できますが、テーブルエイリアス(以下のサンプルコードのs1とs2)を指定する必要があります。
User::where('users.id', $id)
->leftJoin('states as s1', 'users.state_id', '=', 's1.id')
->leftJoin('user_details', 'user_details.user_id', '=', 'users.id')
->leftJoin('states as s2', 'user_details.property_state_id', '=', 's2.id')
->first();
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加