获取包含两个过滤器值的产品

时间:2015-08-05 08:08:46

标签: php mysql sql

我的桌子是

product_id filter_id

55个1
55个2
56个1
57个1



我希望product_id包含filter_id 1,2但不包含1和2。


所以我的ans只有55 product_id。

我的sql查询是什么?

2 个答案:

答案 0 :(得分:2)

有很多方法可以解决它,取决于数据量和更精确的条件。对于您的特定情况,此查询应该适合。 此外,您还可以查看docs

select product_id
from my_table
group by product_id
having count(distinct filter_id) = 2

答案 1 :(得分:0)

我认为这就是你要找的东西:

    SELECT * FROM products WHERE product_id IN (
                    (SELECT product_id FROM products WHERE filter_id = 1)
            INTERSECT
                    (SELECT product_id FROM products WHERE filter_id = 2)
            );