"你可能知道的人"sql查询

tyb*_*103 4 mysql sql database sqlite

我正在研究一个"你可能知道的人"的功能.我有两张桌子:

用户
ID
电子邮件
名称

FRIENDSHIPS
user_id
friend_id

对于每个友谊我都会做两个记录.假设用户7和9成为朋友......我会在友谊表中创建user_id = 7,friend_id = 9和另一个user_id = 9,friend_id = 7的记录.

我如何根据朋友的朋友制作一个sql查询,告诉我可能知道的人?我也希望它基于最共同的朋友订购.

Jus*_*ner 7

select u.id, u.email, u.name, u.etc
-- Get all my friends
from Friendships as f1
-- Get their friends
inner join Friendships as f2
    on f1.friend_id = f2.user_id
-- Get their friends User information
inner join Users as u
    on f2.friend_id = u.id
where f1.user_id = @userId
Run Code Online (Sandbox Code Playgroud)

将是我开始的地方.

  • 令人讨厌的是SQL注释不会在这里突出显示:( (2认同)
  • 亲爱的贾斯汀·尼斯纳先生。请您对“按共同好友数排序”有什么意见吗?我真的需要知道。谢谢。 (2认同)