列出所有朋友的userid SQL查询

时间:2013-04-08 00:13:00

标签: sql oracle

我有2个表用户表(user_id,fname,lname,dob等)和 are_friends 表 (userA_id,userB_id)。我一直试图做这个查询一段时间,我需要它列出所有朋友的user_id。

到目前为止,我得到了什么,

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)
  );

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分: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的朋友。