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 better way?
Note: You can join queries in the same way that you join tables, and can also join both.
Use the UNION ALL clause to join data from columns in two or more tables. In our example, we join data from the employee and customer tables. On the left of the UNION ALL keyword, put the first SELECT statement to get data from the first table (in our example, the table employee ).
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With