在表table
鑑於這些條目:什麼是簡單的方法來執行這個複雜的SELECT查詢?
user entry
A 1
A 2
A 5
A 6
B 1
B 2
B 3
B 4
B 5
B 6
C 1
C 4
D 1
D 2
D 5
D 6
D 7
D 9
我們有一個子集entries_A
一起工作,這是數組[1,2,5,6]
。
問題:
- 查找具有相同的條目[1,2,5,6]多,例如所有用戶[1,2,5,6,7]或[1,2,3,5,6]。
- 查找所有擁有大量相同條目(以及更多)的用戶,例如[1,2,5,9]或[2,5,6,3]。
第一個問題的最佳解決方案,我可以想出,是以下選擇查詢:
SELECT DISTINCT user AS u FROM table WHERE EXISTS (SELECT * FROM table WHERE entry=1 AND user=u)
AND EXISTS(SELECT * FROM table WHERE entry=2 AND user=u)
AND EXISTS(SELECT * FROM table WHERE entry=5 AND user=u)
AND EXISTS(SELECT * FROM table WHERE entry=6 AND user=u)
在另一方面,我得到一個感覺,有一些代數矢量問題潛伏以下表面(特別是對於問題二),但我似乎無法把頭圍住它。
歡迎任何想法!
感謝您的最後一個查詢。我沒有要求,但我需要的東西幾乎完全一樣。 – Honoki
不知道你從哪裏得到的,但是在(1,2,5,6)中有條目根本不起作用,因爲只有聚合函數在having子句中起作用。 – fancyPants
@fancyPants。 。 。謝謝。固定。 –