2014-01-09 85 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;