假设我有一个数据库,其中相关部分如下所示:
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都会变得纠缠不清,不包括其中一个!
答案 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
)