列出所有朋友的用户ID的SQL查询

问题描述:

我有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

尝试使用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