为什么 MySQL SUM 查询只返回一行?

hoo*_*ola 2 mysql sql database join

我正在尝试创建一个 MySQL 查询来返回数据库中每个帐户的所有语句余额的总和。查询如下所示:

SELECT SUM(balance), handle FROM statement_versions
INNER JOIN statements ON statement_versions.statement_id = statements.id
INNER JOIN accounts ON statements.account_id = accounts.id;
Run Code Online (Sandbox Code Playgroud)

当我执行此操作时,它仅返回一行,其中包含一个合计余额和一个帐户(ID 为 1 的帐户)。我想要的是返回所有帐户及其汇总的报表余额。我将如何实现这一目标?

Nic*_*ick 6

您可能需要按某些内容进行分组handle(我认为这与帐户 ID 有关?),否则 MySQL 将从SUM JOIN. 添加GROUP BY子句会使SUM.txt 文件中列的每个不同值发生这种情况GROUP BY。将您的查询更改为:

SELECT SUM(balance), handle FROM statement_versions
INNER JOIN statements ON statement_versions.statement_id = statements.id
INNER JOIN accounts ON statements.account_id = accounts.id
GROUP BY handle;
Run Code Online (Sandbox Code Playgroud)

如果handle与 不相关accounts.id,并且您想要获取按 分组的结果accounts.id,请将查询更改为:

SELECT SUM(balance), accounts.id FROM statement_versions
INNER JOIN statements ON statement_versions.statement_id = statements.id
INNER JOIN accounts ON statements.account_id = accounts.id
GROUP BY accounts.id;
Run Code Online (Sandbox Code Playgroud)