加入两张桌子。一列使用SUM

时间:2014-01-09 07:15:38

标签: mysql sql

我需要一点MySQL查询帮助。

我有两个表,一个表是产品列表,一个表是仓库数量列表

产物:

product_id   product_name
1            name1
2            name2
3            name3

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)

4 个答案:

答案 0 :(得分:2)

试试这个:

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的数量。

答案 1 :(得分: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

答案 2 :(得分: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

答案 3 :(得分: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;