2014-01-09 88 views
1

我需要一个MySQL查询的帮助。加入两张表。一列使用SUM

我有两个表一个表是产品的列表和一个表是仓库量清单

产品:

​​

warehouse_product

id warehouse_id product_id product_quantity 
1 1    1   15 
2 2    1   30 
3 1    2   100 
4 2    2   30 
5 1    3   20 
6 2    3   40 

结果即时通讯寻求从上面的数据得到将是

product_id product_name product_quantity 
1   name1   45 
2   name2   130 
3   name3   60 

我试过很多查询,但它不工作。我的查询是:

SELECT 
    product_id as product_id, SUM(quantity) as quantity 
FROM 
    (SELECT 
     p.product_id as product_id, wp.product_quantity as quantity 
    FROM 
     product as p 
    LEFT JOIN warehouse_product as wp ON p.product_id = wp.product_id 
    WHERE 
     product_active = 1) 

回答

1

试试这个:

SELECT p.product_id, p.product_name, SUM(wp.quantity) as quantity 
FROM product as p 
LEFT JOIN warehouse_product as wp 
ON p.product_id = wp.product_id 
AND product_active = 1 
GROUP BY p.product_id, p.product_name 

连接两个表后,您需要使用GROUP BY,使数量SUM可以对每个产品进行计算。

+0

感谢你这么多! –

+0

@ user2469414不客气。 –

0
SELECT P.productid, 
     P.ProductName, 
     Sum(W.product_quantity) As quantity 
FROM Product AS P 
     LEFT JOIN warehouse_product AS W 
       ON P.productid = W.productid 
GROUP BY P.ProductId , P.ProductName 

SQLFiddle

+0

非常感谢你! –

0
select p.product_id,p.product_name,sum(product_quantity) as 'product_quantity' 
from product p inner join warehouse_product whp on 
whp.product_id=p.product_id group by whp.product_id 
0
select p.product_id, p.product_name,sum(w.product_quantity) 
from 
product p 
inner join 
warehouse_product w 
on 
p.product_id = w.product_id 

group by w.product_id 
order by p.product_name;