开发者

how can join a query result set with an existing table?

is there any way to avoid using tmp table?

I am using a query with aggregate function (sum) to generate the sum of each product: the result looks like this:

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

now i want to join the above result to another table called products. so that i will have a summary like this:

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

i know 1 way of doing this is the dump the 1st query result to a temp table then join it with products table. is there a开发者_如何学C better way?


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


You can do it like this

select table1.productname, virtualtable.qty
from table1 
inner join (
  select productid, qty
  from table2
  group by productid
) as virtualtable on virtualtable.productid = table1.productid


Perhaps the UNION syntax is what you are looking for? http://dev.mysql.com/doc/refman/5.0/en/union.html Some more information would be useful.


You can do multiple joins in one select query. Does that solve your problem? It's hard to tell what you are asking for.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜