我有一个朋友列表表,我在其中保持两个用户之间的友谊关系,然后加入他们的帖子等:
(user_a, user_b, relation type)
以下是一些示例数据:
u_f_id | user_a | user_b | relation_type
----------------------------------------
12 | 20 | 23 | 1 //friend
13 | 30 | 20 | 2 //family
我还有一个用户表,我在其中保存用户的姓名和详细信息。
我正在寻找一个返回用户和他们的朋友的查询。例如,如果它出现在user_a
or中,我需要用户 20 的朋友user_b
。
我尝试了以下方法:
SELECT CASE
WHEN user_friends.user_a = 20 THEN user_friends.user_b
ELSE user_friends.user_a
END AS friend,
user_friends.*
FROM user_friends
WHERE user_friends.user_a = 20
OR user_friends.user_b = 20