0

誰かがこのクエリで私を助けてくれますか?

テーブルユーザー

+------+---------------------+  
| id   | name                |  
+------+---------------------+  
| 1    | John                |  
| 2    | Jade                |    
| 3    | Robbert             |  
| 4    | Steve               |
+------+---------------------+

テーブルの友情

+------+---------------------+  
| uid  | friend_id           |  
+------+---------------------+  
| 1    | 2                   |  
| 1    | 3                   |    
| 2    | 4                   |  
+------+---------------------+
  1. 現在のユーザー ID が 1 であると仮定します。
  2. 現在のユーザーの友達の名前を取得したい。(全員)
  3. ただし、このコードは、見つかった各フレンドの現在のユーザー名のみを返します。

上記の例のデータの場合、出力は :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
4

2 に答える 2