基于自引用表查询用户好友

时间:2018-08-20 15:27:50

标签: mysql sql

我有一个用户表和一个自引用表,因此可以将用户分配为彼此的朋友。该表如下所示:

Database model - Image.frl - free image hosting

我想查询表并找回特定用户的所有朋友(例如,按用户ID)。我不确定如何以某种方式查询它,因为它知道应该为用户ID查找所有朋友ID,并在用户表中查找与那些朋友ID关联的所有用户。

任何人都可以阐明如何做到这一点吗?我正在使用MySQL。

1 个答案:

答案 0 :(得分:1)

您问题的简单答案(由user_id查找)是

SELECT friends.*
FROM user AS friends
JOIN user_has_friends ON friends.id = user_has_friends.friend_id
WHERE user_has_friends.user_id = *ID HERE*

如果要按first_name或任何其他列进行查找,则必须向用户表添加另一个联接。