SQL:获取与id关联的值为n的所有行

时间:2015-06-13 16:41:37

标签: mysql

假设我有以下表格cart,cart_data和product:

cart_id TOTAL_COST

cart_data

cart_data_id cart_id PRODUCT_ID

产品

PRODUCT_ID PRODUCT_NAME

我正在尝试选择cart_data中每个product_id必须= 2的所有购物车,然后返回所有product_ids = 2的cart_id

例如: 如果购物车有5个产品都有id = 2,那么cart_id应显示。

但是,如果购物车有5个产品,其中4个产品= 2个,1个产品= 4,那么它就不应该出现。

1 个答案:

答案 0 :(得分:0)

Haven没有测试过,但这应该有效:

SELECT     cart_data.cart_id
FROM       cart_data
WHERE      cart_data.cart_id IN
           ( SELECT cart_data.cart_id
             FROM   cart_data
             GROUP BY cart_data.cart_id
             HAVING MIN( cart_data.product_id ) = 2
             AND    MAX( cart_data.product_id ) = 2
           )