总结第二个表中不存在的值

时间:2016-01-21 10:37:02

标签: mysql join sum

我有两张桌子。第一个包含产品代码,第二个包含产品代码和数量。

现在我想总结每个产品代码的所有数量,即使第二个表中没有所有产品。 输出应该是产品代码和每个代码的总数量,对于没有数量的代码,它应该是0。

**Table1** 
productName  |
--------------
     a       | 
     b       |  
     c       |  
     d       |
     e       |

**Table2**  
productName  | QTY   |
----------------------
     a       |   3   |  
     b       |   4   |
     a       |   1   |
     b       |   2   |
     c       |   1   |    

**Output**    
productName  | QTY   |
----------------------
     a       |   4   |  
     b       |   6   |
     c       |   1   |
     d       |       |
     e       |       |    
SELECT tbl1.productname, SUM(tbl2.qty) AS TotQTY
FROM tbl1
INNER JOIN tbl2 ON tbl1.productname = tbl2.productname
group by tbl1.productname

这是我在SQL Fiddle

中的尝试

我只能获得带有数量的记录,但不会显示其他记录。

3 个答案:

答案 0 :(得分:1)

    SELECT Table1.productName, SUM(Table2.qty)  AS TotQTY
FROM Table1
LEFT JOIN Table2 ON Table1.productName = Table2.productName
group by Table1.productName

答案 1 :(得分:1)

这似乎是你想要的: -

SELECT Table1.productName, COALESCE(SUM(Table2.qty),0) AS TotQTY
FROM Table1
LEFT JOIN Table2 ON Table1.productName = Table2.productName
GROUP BY Table1.productname

SQLfiddle: -

http://sqlfiddle.com/#!9/619228/3

答案 2 :(得分:1)

SELECT Table1.productName,COALESCE(SUM(Table2.qty),0) AS TotQTY
FROM Table1
LEFT JOIN Table2 ON Table1.productName = Table2.productName
group by Table1.productName