我試圖尋找存在於所有filter_cat_id的一個PRODUCT_ID,因此在本例中是PRODUCT_ID 30,因爲它與filter_cat_id 1 2和3
一般存在,這可以通過PRODUCT_ID分組,並使用HAVING COUNT(product_id) >= x
來完成 - 在X是類別的數量,
SELECT product_id FROM table GROUP BY product_id HAVING COUNT(product_id) >= 3
如果你不知道類別數前期(從而y您可以同時插入的實際數量到查詢),就可以得到該值與子查詢,
SELECT product_id FROM table GROUP BY product_id
HAVING COUNT(product_id) >= (SELECT COUNT(DISTINCT category_id) FROM table)
編輯:好吧,顯然category_ids搜索來自某種搜索表單/過濾器機制。
在這種情況下,必須添加項目的過濾 - 並且要比較的數字必須隱式嵌入,但這應該不成問題。
SELECT product_id FROM table
WHERE category_id IN(1,2,3)
GROUP BY product_id
HAVING COUNT(product_id) >= 3
請發表您的SQL代碼,所以我們可以幫助你更好。 – GregD 2013-04-28 05:20:29