一个相当复杂的连接

时间:2013-10-28 20:15:43

标签: mysql join

实际上并不复杂,我可能会误导你的标题。基本上我所拥有的是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可能是recipientsender,因此我需要从friendships记录中分别获取有关其他人的信息。

我甚至不知道我应该如何构建这个联接,是否可能?

我猜它会像

那样
SELECT * 
FROM friendships LEFT JOIN users ON ???=users.id WHERE recipient=n OR sender=n

1 个答案:

答案 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)