2010-04-05 61 views
2

有沒有辦法避免使用tmp表?mysql結果集加入現有表

我使用與聚合函數(SUM)的查詢生成每個產品的總和:結果是這樣的:

product_name | sum(qty) 
product_1 | 100 
product_2 | 200 
product_5 | 300 

現在我想加入上述結果到另一個表稱爲產品。因此,我將有一個這樣的總結:

product_name | sum(qty) 
product_1 | 100 
product_2 | 200 
product_3 | 0 
product_4 | 0 
product_5 | 300 

我知道這樣做的1路是垃圾堆裏的第一次查詢結果到一個臨時表,然後用產品表加入。有沒有更好的辦法?

回答

2
select products.*, sum(product.qty) 
FROM products LEFT OUTER JOIN product 
ON product.id = products.pid 
GROUP BY pid 
+0

我會用'coalesce(sum(product.qty),0)'替換'sum(product.qty)',因爲如果表SUM和SUM返回NULL而不是'0'正在運行的產品沒有任何記錄。 – 2010-04-05 06:21:56