我一直在寻找其他的问题,我能够解决我想要的部分问题,但我不能再进一步了。
我在friends表中有一个包含两列(user,friend)的表。每个用户和他/她的朋友都在下表中指定。
User | Friend
1 2
1 6
2 1
2 3
2 6
注意:对于每个(用户,朋友)对都有一行(朋友,用户),例如:1,2有2,1,因为用户2有朋友1
到目前为止,我已经得到了下面的查询,它给出了我们指定的一对的共同朋友的计数:
select DISTINCT f1.user1 'User', f2.user1 'Friend', COUNT(DISTINCT f1.user2) 'Mutual friends'
from Friends p
inner join Friends f1 on f1.user2 = p.user1
inner join Friends f2 on f2.user2 = p.user1
where f1.user1 = 2 and f2.user1 = 3 and f1.user2 = f2.user2
group by f1.user1, f2.user1;
我现在的输出:
User |Friend |Mutual Friends
1 2 1
我想找出整张table上每一对的共同朋友的数量:
User | Friend | Mutual Friends
1 2 1
1 6 0
2 1 1
2 3 0
2 6 0
如何查找所有用户、好友对的共同好友数?
1条答案
按热度按时间1zmg4dgp1#
可以使用自联接:
您可以添加
where
子句,如果您需要特定用户对的此信息。