我正在研究一个“你可能知道的人”的功能.我有两张桌子:
USERS
ID
电子邮件
名称
等等
友谊
用户身份
friend_id
对于每个友谊我都会做两个记录.假设用户7和9成为朋友……我会在友谊表中创建user_id = 7,friend_id = 9和另一个user_id = 9,friend_id = 7的记录.
我如何根据朋友的朋友制作一个sql查询,告诉我可能知道的人?我也希望它基于最共同的朋友订购.
解决方法:
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
将是我开始的地方.