从一个产品和另一个类别的另一个产品中查找订单

时间:2010-08-11 16:02:03

标签: mysql

假设我有一个数据库,其中相关部​​分如下所示:

PRODUCT TABLE

productid

categoryid

ORDER LINE ITEMS TABLE

orderid

productid

我们还要说productid#1属于#1类。

我的目标是在categoryid#2 AND productid#1(不在categoryid#2中)找到所有同时包含任何产品的订单项的订单。换句话说,客户从categoryid#1001和产品#1订购任何订单的所有订单的列表。

我确信有一个简单的方法可以解决这个问题,但我现在正在对它进行消隐 - 我的所有AND和OR都会变得纠缠不清,不包括其中一个!

1 个答案:

答案 0 :(得分:0)

假设您有一个名为ORDER的表:

select o.* --put actual column names here instead of *
from ORDER o
where o.orderid in (
 select orderid
 from PRODUCT p 
 inner join [ORDER LINE ITEMS] ol on p.productid = ol.productid
     and p.categoryid = 2
)
and o.orderid in (
 select orderid
 from [ORDER LINE ITEMS] ol
 where ol.productid = 1
)