多对多加入

Many to many join

我有这个

我正在尝试 select 所有与用户名指定的用户成为好友的用户。 我试过这样的东西

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

但我想访问用户 table 的字段。

您将需要像这样加入用户 table 两次(更改 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是一个linking table记录在用户table之间。它将一个用户记录与另一个用户记录相关联。要获取 link table 中两个实体的用户记录信息,您必须将其加入两个 linking id。

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'