多对多加入
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'
我有这个
我正在尝试 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'