我试图寻找存在于所有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