誰かがこのクエリで私を助けてくれますか?
テーブルユーザー
+------+---------------------+
| id | name |
+------+---------------------+
| 1 | John |
| 2 | Jade |
| 3 | Robbert |
| 4 | Steve |
+------+---------------------+
テーブルの友情
+------+---------------------+
| uid | friend_id |
+------+---------------------+
| 1 | 2 |
| 1 | 3 |
| 2 | 4 |
+------+---------------------+
- 現在のユーザー ID が 1 であると仮定します。
- 現在のユーザーの友達の名前を取得したい。(全員)
- ただし、このコードは、見つかった各フレンドの現在のユーザー名のみを返します。
上記の例のデータの場合、出力は :John
で、John
行ごとに 1 つずつです。
$friends = DB::table('users')
->join('friendship', function($join)
{
$join->on('users.id', '=', 'friendship.uid');
})
->where('friendship.blocked', '=', '0' )
->where('users.id', '=', '1' )
->get();
上記の SQL コード:
select * from `users`
inner join `friendship`
on `users`.`id` = `friendship`.`uid`
where `users`.`id` = 1