mysql精细特定订单类别

时间:2015-12-04 08:37:25

标签: mysql sql-order-by

我有两张桌子。订单和product_order。 订单表如下:

enter image description here

我想获得订单,其中添加了一些特定类别的产品。这样我的例子我想知道哪些订单没有category_id 2,3和4.这里order_id:3有category_id:3,4,7。但order_id:4有category_id:5,7。所以order_id:3没有完全满足要求。 我主要担心的是,找到那些没有特定产品类别的订单。如果任何订单有多个类别,那么阻止category_d存在的情况下是不可接受的。

实际上我需要订购其他类别产品的customer_id。如果在单个订单中同时包含3和5,我们不允许他在此过滤列表中。我们需要知道谁订购的产品不包括2,3和4类

2 个答案:

答案 0 :(得分:0)

根据我的理解,这可以是您的查询:

SELECT DISTINCT o.order_id
    FROM order o, order_category oc
WHERE
    o.order_id = oc.order_id
    AND
    oc.category_by NOT IN (2,3,4)

希望它会帮助你..

答案 1 :(得分:0)

您需要发布聚合过滤

SELECT order_id FROM order_category  
GROUP BY  order_id  
HAVING SUM(category_by=2)=0 
AND SUM(category_by=3)=0 
AND SUM(category_by=4)=0