如何将查询结果集与现有表连接?

Yan*_*ang 14 mysql sql

有没有办法避免使用tmp表?

我正在使用带有聚合函数(sum)的查询来生成每个产品的总和:结果如下所示:

product_name | sum(qty) 
product_1    | 100 
product_2    | 200 
product_5    | 300 
Run Code Online (Sandbox Code Playgroud)

现在我想将上述结果加入另一个名为products的表中.所以我会得到这样的总结:

product_name | sum(qty) 
product_1    | 100 
product_2    | 200 
product_3    | 0 
product_4    | 0 
product_5    | 300 
Run Code Online (Sandbox Code Playgroud)

我知道这样做的一种方法是将第一个查询结果转储到临时表,然后将其与products表连接.有没有更好的办法?

egr*_*nin 31

SELECT Product_Name, Total FROM ProductTable x
LEFT OUTER JOIN (SELECT SUM(qty) as Total, ProductID FROM InventoryTable 
    GROUP BY ProductID) y
ON x.ProductID = y.ProductID
Run Code Online (Sandbox Code Playgroud)


cod*_*000 7

你可以这样

select table1.productname, virtualtable.qty
from table1 
inner join (
  select productid, qty
  from table2
  group by productid
) as virtualtable on virtualtable.productid = table1.productid
Run Code Online (Sandbox Code Playgroud)


Rob*_*Dam 5

也许 UNION 语法就是您正在寻找的?http://dev.mysql.com/doc/refman/5.0/en/union.html 更多信息会很有用。