Mysql 使用join对所有行求和

Mysql 使用join对所有行求和,mysql,join,group-by,Mysql,Join,Group By,如何使用联接对查询中的所有行求和 SELECT SUM(accounting.amount) AS sum, SUM(balance_invoice.amount) AS sum_balance FROM accounting LEFT JOIN balance_invoice ON balance_invoice.accounting_id=accounting.id 我需要此查询仅返回一行,其总金额为accounting.amount和balance\u invoice.amount 可以

如何使用联接对查询中的所有行求和

SELECT SUM(accounting.amount) AS sum, SUM(balance_invoice.amount) AS sum_balance
FROM accounting
LEFT JOIN balance_invoice ON balance_invoice.accounting_id=accounting.id
我需要此查询仅返回一行,其总金额为
accounting.amount
balance\u invoice.amount

可以将多行连接到每个
accounting.id

更新
只需在
SUM()
-函数中添加这两个值:

SELECT SUM(accounting.amount + balance_invoice.amount) AS sum_all
FROM accounting
LEFT JOIN balance_invoice ON balance_invoice.accounting_id=accounting.id
如果其中一列可以为
NULL
,则应添加额外的:

编辑:
很抱歉我错过了那个重要的部分。如果您只想对每个
accounting.amount
进行一次计数,而可以有多个
balance\u invoice.amount
加入,我会使用如下子选择:

SELECT
  a.id,
  (
    a.amount
    + 
    (SELECT SUM(b.amount) FROM balance_invoice b WHERE b.accounting_id = a.id)
  ) AS sum_all
FROM
  accounting a

只需在
SUM()
-函数中添加这两个值:

SELECT SUM(accounting.amount + balance_invoice.amount) AS sum_all
FROM accounting
LEFT JOIN balance_invoice ON balance_invoice.accounting_id=accounting.id
如果其中一列可以为
NULL
,则应添加额外的:

编辑:
很抱歉我错过了那个重要的部分。如果您只想对每个
accounting.amount
进行一次计数,而可以有多个
balance\u invoice.amount
加入,我会使用如下子选择:

SELECT
  a.id,
  (
    a.amount
    + 
    (SELECT SUM(b.amount) FROM balance_invoice b WHERE b.accounting_id = a.id)
  ) AS sum_all
FROM
  accounting a

好的,但是如果您对每个accounting.id有多个连接,这也可以吗?好的,但是如果您对每个accounting.id有多个连接,这也可以吗?请查看我更新的答案。我会放弃连接,改用子选择。你的更新是答案吗?如果是这样的话,应该将其作为答案发布,而不是问题的更新。请查看我的更新答案。我会放弃连接,改用子选择。你的更新是答案吗?如果是这样,则应将其作为答案发布,而不是问题的更新。