2010-04-05 62 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