很多人加入

时间:2015-04-15 19:05:50

标签: mysql join many-to-many

我有这个

database diagram

我正在尝试选择与用户名为user的用户成为朋友的所有用户。 我试过这样的事情

select friends.id_friend
from friends inner join users on users.id =  friends.id_user 
where users.Username = 'Dani'

但我想访问users表中的字段。

2 个答案:

答案 0 :(得分:2)

您需要两次加入用户表,如下所示(更改SELECT以满足您的需求):

select user.*, friend.*
from friends user_friend_link
inner join users user on user.id =  user_friend_link.id_user 
inner join users friend on friend.id = user_friend_link.id_friend
where user.Username = 'Dani'!

在这种情况下,friends是users表中记录之间的链接表。它将一个用户记录与另一个用户记录相关联。要获取链接表中两个实体的用户记录信息,您必须将其连接到两个链接ID。

答案 1 :(得分:0)

SELECT friends.ID_friend, u.*
FROM friends 
INNER JOIN users 
ON users.ID =  friends.ID_User 
LEFT JOIN users u
ON u.ID =  friends.ID_friend 
WHERE users.Username = 'Dani'