2011-04-15 250 views
0

我有試圖在下表中結合了MySQL查詢幫助:需要一個MySQL查詢

TABLE: orders_products 
products_id 
orders_id 
products_quantity 
products_price 

TABLE: products 
products_id 
products_model 

我想返回銷售總數的查詢,對每個PRODUCT_ID銷售總額,以及orders_products表中每個產品的product_model。這是我想出來的迄今最好的,它只是增加了什麼東西都往同一桶:

SELECT 
    SUM(op.products_quantity) AS num_sold 
    ,SUM(op.final_price * op.products_quantity) 
    ,p.products_model 
FROM orders_products AS op 
JOIN products AS p 
WHERE p.products_id = op.products_id 

回答

4

添加group by p.products_idwhere後,你會好

+0

+1因爲我喜歡它 – Smandoli 2011-04-15 04:13:11

+0

謝謝!我已經做了足夠的查詢,我應該知道這一點。 – user77413 2011-04-15 04:22:23

+0

@ user77413歡迎您 – Wes 2011-04-15 04:28:43

2
SELECT p.products_id, p.products_model, 
    SUM(op.products_quantity) AS num_sold 
    ,SUM(op.final_price * op.products_quantity) AS sales 
FROM orders_products AS op 
JOIN products AS p 
WHERE p.products_id = op.products_id 
GROUP BY p.products_id, p.products_model 
+0

+1的完整性 – Smandoli 2011-04-15 04:12:46

+0

+1您只需在MySQL中有'GROUP BY p.products_id','p.products_model'在功能上依賴於'products_id'。 – 2011-04-15 05:16:42

+0

確實如此,但大多數其他數據庫確實需要它,並假設這使得代碼更依賴於mysql。我更願意儘可能地將我的SQL編寫爲獨立於數據庫的數據庫,因此我認爲將組中的所有列都包含在內是一種更好的做法。 – squawknull 2011-04-15 18:00:09