我正在爲我的家庭作業的問題工作,我必須檢查一個訂單數據庫,看看是否有任何書籍以相同的順序多次訂購。 下面是一個例子:查詢得到重複
+----------+------------+---------+----------+-------------+
| order_id | order_line | book_id | quantity | order_price |
+----------+------------+---------+----------+-------------+
| 33034 | 1 | 1619 | 1 | 29.99 |
| 33034 | 2 | 6789 | 1 | 25.95 |
| 33034 | 3 | 1619 | 5 | 15.95 |
| 33189 | 1 | 1667 | 2 | 25.95 |
| 40564 | 1 | 4739 | 2 | 20.99 |
| 11357 | 1 | 1667 | 2 | 35.95 |
所以訂購33034訂購書1619的兩倍。我不知道如何只提取正確的訂單ID 截至目前看來我的查詢可以測試多個相同的book_id,然後測試相關的order_id,但我不能得到連接兩者的邏輯。 查詢是essentialy說:「相同的書?檢查!做了相關的order_id訂單超過任何兩本書?檢查!」我需要它來確保它訂購了多本同一本書。
我不能使用連接,只有子查詢。 我很難過,我的頭靠近下一步,但這是我迄今爲止。
select order_id
from a_bkorders.order_details
where book_id in (
select book_id
from a_bkorders.order_details
group by book_id
having count(book_id)>1)
group by order_id
having count(order_id)>1)
感謝您的任何建議幫助!
請注意,在實踐中,這是不可能發生的,因爲PK(正確標準化的設計)將包括book_id。也就是說,如果order_ids相等,並且book_ids相等,order_lines不相等,則同一本書會多次訂購。 – Strawberry