假設你有如下表命名喜歡:查詢一個喜歡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