簡體   English   中英

如何在父表中查詢兩個不同的子行?

[英]How do I query a parent table for two distinct child rows?

給定這兩個表,從Order到LineItem具有一對多關系:

Order
-----
Order_id (primary key)

LineItem
--------
LineItem_id (primary key)
Order_id (foreign key to Order)
price
productCode

我將如何找到訂單與至少一個項目,表示價格= 10.00,並與產品代碼= 12345 不同的項目?

由於您需要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

您可以使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM