实际上并不复杂,我可能会误导你的标题。基本上我所拥有的是2桌
CREATE TABLE `friendships` (
`sender` int(11) unsigned NOT NULL,
`recipient` int(11) unsigned NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
和users
此问题只涉及id
列。
friendships
拥有人与人之间的联系。我想要做的是从用户表中获取用户n
的所有朋友以及他们的相关信息。问题是在friendships
用户n
可能是recipient
或sender
,因此我需要从friendships
记录中分别获取有关其他人的信息。
我甚至不知道我应该如何构建这个联接,是否可能?
我猜它会像
那样SELECT *
FROM friendships LEFT JOIN users ON ???=users.id WHERE recipient=n OR sender=n
答案 0 :(得分:2)
SELECT *
FROM friendships f
LEFT JOIN users s ON s.id = f.sender
LEFT JOIN users r ON r.id = f.recipient
WHERE n in (f.recipient, f.sender)