2013-10-28 68 views
0

這實際上並不複雜,我可能會誤導你一些標題。基本上我已經是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 

回答

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) 
+0

噢,我的上帝..認真..怎麼有我沒有想到的是*捂臉*。謝謝! –

+0

這實際上並沒有解決我的問題,它選擇發件人和收件人信息。我只需要一個不是用id'n' :( –