鉴于这两个表,从Order到LineItem的关系是多对多的:
Order
-----
Order_id (primary key)
LineItem
--------
LineItem_id (primary key)
Order_id (foreign key to Order)
price
productCode
我如何找到至少有一个订单项的订单,其中price = 10.00,以及不同的订单项,其中productCode = 12345?
答案 0 :(得分:2)
由于您需要2个不同的项目,因此需要两次加入lineitem表并禁止它们具有相同的主键。
select distinct o.order_id
from order o
join lineitem item1
on item1.order_id = o.order_id
join lineitem item2
on item2.order_id = o.order_id
and item2.lineitem_id != item1.lineitem_id
where item1.price = 10
and item2.productcode = 12345
答案 1 :(得分:0)
您可以使用UNION并合并这两个查询。所以像这样(未经测试)
Select o.Order_id, l.price, l.productCode
from Orders o
join LineItem l
on l.Order_id = o.Order_id
where l.price = 10
union
Select o.Order_id, l.price, l.productCode
from Orders o
join LineItem l
on l.Order_id = o.Order_id
where l.productCode = 12345