mysql连接2个表,第二个表需要SUM()

时间:2017-01-11 07:37:31

标签: mysql sum left-join

我有两张桌子,

首先包含文章,第二个包含数量。这两个表与“kodex”列链接。第二个表可以具有同一项的多个记录,但也可以没有。

我需要的是一个列出整个第一个表的查询,并添加一个附加列,其中包含第二个表中所有条目的所有数量的总和。

我在kodex表上使用左连接完成了这个,并且工作正常,但只要我不在select语句中添加sum()。一旦我这样做,它只列出第二个表上匹配的行。

显示所有行的查询:

SELECT b.* FROM `bestehend` as b left join eingelesen as e on e.kodex=b.kodex 

查询仅显示第二个表中具有匹配条目的行:

SELECT b.*, sum(e.menge) as gesmenge FROM `bestehend` as b left join eingelesen as e on e.kodex=b.kodex 

我需要的是第一个查询的行为,以及第二个查询中的附加列gesmenge

谢谢!

1 个答案:

答案 0 :(得分:1)

更新您的查询

SELECT b.*, sum(e.menge) as gesmenge FROM `bestehend` as b left join eingelesen as e on e.kodex=b.kodex 

添加group by b.article_id。需要分组,因此查询知道如何汇总第二个表中所有条目的数量。

最终查询应该看起来像

SELECT b.*, sum(e.menge) as gesmenge FROM `bestehend` as b left join eingelesen as e on e.kodex=b.kodex group by b.article_id