假设你有如下表命名喜欢:查询一个喜欢B,B喜欢C,分离的两个自由度
A|B
---
a|b
a|f
a|e
a|i
b|a
b|i
c|d
e|p
在该表中,a值代表谁的人“喜欢”的人B.所以,喜欢b,喜欢f,喜欢e等等。 如何撰写查询,以便获得来自每个用户的两个分离度的不同用户的数量?举个例子,如果a喜欢b,那么b就是与a的一个分离度。如果a喜欢b,b喜欢c,那么c与a是两个分离度。再举一个例子,如果a喜欢b,b喜欢a,那么a与自身是两度分离的(我们不排除周期)。所以输出应该是这样的:
User|CountOfUsersWhoAreTwoDegreesFromUser
-----------------------------------------
a | -
b | -
c | -
e | -
现在,我不知道我们的计数会是怎样为每个用户,所以我没有在上表中写。此外,表中没有人喜欢自己。所以你不会在Like中看到类似a |的组合,或者在Like中看到b | b。任何人都可以帮我解决这个问题吗?
A不具有唯一值... – fredley 2011-03-10 21:13:53
输入有误,更新它 – Boobie 2011-03-10 21:16:04
注意,因为你已经表述的问题,如果(A,B)和(B,A),然后将被算作距离自身两度。 – 2011-03-10 21:30:10