2014-09-18 17 views
0

我確實需要一個MySQL查詢,它從主表獲取訂單,然後計算關聯的單個項目以及來自另一個表的總行數。需要從主表獲取訂單的MySQL查詢,然後計算與其關聯的單個項目以及來自另一個表的總行數

所以,我有以下結構:

db.Orders 
id | order_number | date_worked 

1 | 1234 | 2014-09-17 
2 | 1235 | 2014-09-17 
3 | 1236 | 2014-09-17 
4 | 1237 | 2014-09-17 


db.OrdersItems 
id | order_number_id | item_id 

1 | 1234 | widget1 
2 | 1234 | widget1 
3 | 1234 | widget2 
4 | 1234 | widget2 
5 | 1234 | widget2 
6 | 1235 | widget4 
7 | 1235 | widget4 
8 | 1236 | widget4 
9 | 1236 | widget1 
10| 1237 | widget1 

一個訂單可以具有多個SKU和每個SKU多行每個訂單。所以我在找什麼,只是無法弄清楚,是如何得到以下內容:

order_number |從db.OrdersItems爲order_number_id |計算單個skus的數量order_number_id的行總數

ex。

1234 | 2 skus | 5 lines 
1235 | 1 skus | 2 lines 
1236 | 2 skus | 2 lines 
1237 | 1 skus | 1 lines 
+0

「我真的需要一個MySQL查詢該......」。對你有好處,繼續寫下來! [**你有沒有嘗試過任何東西?](http://whathaveyoutried.com) – Barranka 2014-09-18 17:36:33

+0

@Barranka,我曾嘗試過,但知道這是完全錯誤的,爲了儘量減少混淆,我發佈了它。我邏輯地提出了問題,並得到了很好的迴應。這可能有點不禮貌,但問題和現在的答案將有希望幫助未來的其他人,而不必通過我的混亂的代碼。 – tatorface 2014-09-18 19:13:26

回答

1

我相信你是後(SQL Fiddle):

SELECT o.order_number, COUNT(DISTINCT i.item_id) AS SkuCnt, COUNT(*) AS LineCnt 
FROM Orders o 
INNER JOIN OrdersItems i ON o.order_number = i.order_number_id 
GROUP BY o.order_number 
+0

這是完美的,你超級快。非常感謝。我試圖在count()s中出於某種原因選擇語句。頭今天不正常。只要它能讓我回答就會回答。 – tatorface 2014-09-18 17:32:39

相關問題