从另一个表对AGGREGATE SUM执行LEFT JOIN

时间:2016-08-03 18:24:24

标签: mysql left-join aggregate

我有两个表(缺陷,sort_data),我想对它们执行汇总和和左连接的组合,以显示所有缺陷名称,从sort_data中的最高数量总和排序,并且还包括缺陷存在于sort_data表中。见下文。

defects
defect_name
-----------
Snapped     
Cracked     
Melted      
Warped      
Other       

sort_data
defect_name |qty
----------------
Snapped     |5
Cracked     |1
Snapped     |15
Snapped     |10
Melted      |2

Desired results: 
Snapped
Melted
Cracked
Other
Warped

我可以使用汇总和从sort_data创建列表的一部分:

SELECT sort_data.defect_name, sum(qty) 
FROM sort_data 
GROUP BY sort_data.defect_name 
ORDER BY sum(qty)

我相信我还需要一个左连接,如:

SELECT * 
from defects 
LEFT OUTER JOIN sort_data on sort_data.defect_name = defects.defect_name

我不确定如何将两者结合起来。帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

使用左连接

SELECT defect.defect_name, sum(sort_data.qty) 
FROM defect 
LEFT JOIN sort_data on sort_data.defect_name = defects.defect_name
GROUP BY sort_data.defect_name 
ORDER BY sum(sort_data.qty);