2013-04-08 82 views
2

我有2代表一用戶表(user_ID的,FNAME,LNAME,出生日期等)和are_friends表 (userA_id,userB_id)。我一直試圖做這個查詢一段時間,我需要它列出一個user_id的所有朋友。列出所有朋友的用戶ID的SQL查詢

我有這麼遠,

SELECT 
    U.user_id, 
    U.fname, 
    U.lname 
FROM are_friends A, user U 
WHERE 
    A.user_id = U.user_id 
    AND (
    A.user_id = 1 
    OR A.user_id IN (SELECT userB_id FROM are_friends WHERE userA_id = 1) 
); 

任何幫助將非常感激。

+0

你用MySQL **和** Oracle標記了你的問題。你真的在用什麼? – 2013-04-08 07:09:50

+0

在oracle下使用SQLPLUS。 – 2013-04-08 14:48:11

回答

3

嘗試使用INNER JOIN這樣的:

SELECT u2.user_id, u2.fname, u2.lname 
FROM user u 
INNER JOIN are_friends f ON f.userA_id = u.user_id 
INNER JOIN user u2 ON u2.user_id = f.userB_id 
WHERE u.user_id = 1 

您可以更改WHERE條款具體再弄用戶ID的朋友。

+0

感謝您的快速回復。我會嘗試這個並回復你。再次感謝。 – 2013-04-08 00:21:03

相關問題