有人可以帮我解决这个问题。
表用户
+------+---------------------+
| id | name |
+------+---------------------+
| 1 | John |
| 2 | Jade |
| 3 | Robbert |
| 4 | Steve |
+------+---------------------+
表友谊
+------+---------------------+
| uid | friend_id |
+------+---------------------+
| 1 | 2 |
| 1 | 3 |
| 2 | 4 |
+------+---------------------+
- 假设当前用户 id 为 1。
- 想得到当前用户好友的名字。( 他们都是 )
- 但是此代码仅返回它找到的每个朋友的当前用户名。
对于上面的示例数据,输出是 : John
,John
每一行都有一个。
$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