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

我想要获得订单,其中添加了一些特定类别的产品。这样的例子,我想知道哪些订单没有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的产品
发布于 2015-12-04 17:57:24
根据我的理解,这可能是你的问题:
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)希望它能帮助你..
发布于 2015-12-04 18:01:44
您需要聚合后过滤
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)=0https://stackoverflow.com/questions/34083994
复制相似问题