有人可以帮助我解决这个问题。如何加入这两个mysql表?
表用户
+------+---------------------+
| 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
仍然获得'约翰'两次。当前名称。注意:这是laravel 4语法。它使用'inner join'而不是'join'。我不知道区别。 – Pars
它工作正常。我刚刚添加了一个小提琴证明如此。顺便说一句,'inner join'和'join'对于MySQL来说是一样的。 –
哇,非常感谢你。你节省了我的时间。它正在工作......我的一个错字。在阅读您的查询之后。我修好了它。 – Pars