【发布时间】:2018-12-24 13:41:26
【问题描述】:
我已经搜索了其他问题,并且我能够解决我想要的部分问题,但我无法从中获得任何进一步的信息。
我在 Friends 表中有一个包含两列(用户、朋友)的表。 每个用户和他/她的朋友都在下表中指定。
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
我想在整个表格中找到每一对的共同朋友的数量:
User | Friend | Mutual Friends
1 2 1
1 6 0
2 1 1
2 3 0
2 6 0
如何找到所有用户、朋友对的共同朋友数量?
【问题讨论】: