2

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

任何帮助都感激不尽。

4

1 回答 1

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 的朋友。

于 2013-04-08T00:15:51.170 回答