我需要計算A
用戶與其他用戶列表之間的共同朋友(A, B, C, D, E...)
;MySQL計算多個用戶之間的共同朋友
這是我目前relations
表的例子:
INSERT INTO `relations` (`id`, `related_to`, `user_id`) VALUES
(1, 10, 1),
(2, 12, 1),
(3, 10, 2),
(4, 12, 3),
(5, 10, 3),
(6, 10, 4),
(7, 3, 5),
(8, 2, 1),
(9, 1, 3);
,現在我想算共同的朋友愨用戶1
和用戶(2, 3, 4)
所以,我應該得到的結果是用戶2
將有一個共同的朋友,用戶3
將有兩個共同的朋友,並且用戶4
將有一個共同的朋友。
這裏是SQL Fiddle進行測試和選擇語句顯示哪些字段,我應該得到一次正確的查詢寫入。
編輯我想我應該糾正我自己,我不需要來獲取有關用戶的行,我確實需要得到每個用戶ID的計數結果,例如[3] => 2
似乎工作的「related_to的數目:HTTP:/ /sqlfiddle.com/#!2/20833/11 – Barmar
是的,它沒有,只有一個問題,這將是緩慢的說100k行? – Linas
如果這兩個字段都被索引,它會非常快。如果他們不是,我仍然會想象它會相對較快,因爲它們都是整數場。你可能不會知道,直到你嘗試它。 – JustinHui