我有一个 MySQL 表设置如下:
debts
--------------------------
owed_by | owed_to | amount
--------|---------|-------
Alice | Bob | 5
Bob | Jane | 10
Alice | Jane | 10
Jane | Bob | 5
是否可以在 MySQL 中编写一个查询来返回每个人所欠的总额?他们欠谁并不重要,我只想归还每个人和(欠的人总数 - 欠的人总数)
获得总欠款很容易
SELECT `owed_by`, SUM(`amount`) as 'Total Debt'
FROM `debts`
GROUP BY `owed_by`
ORDER BY SUM(`amount`) DESC
但我不知道如何减去他们的欠款。
此外,作为一般规则,在 MySQL(如果可能)或 PHP 中执行这样的操作更好吗?
这是我的示例数据的 SQL Fiddle:http ://sqlfiddle.com/#!2/dd7cf/1