0
我想在两个相关的表中获得amount
列的总和。在两个不同的相关表中获得两个字段的总和
发票表:
-----------------------------------------
| id | student_id | created | updated |
-----------------------------------------
| 5 | 25 | date | date |
-----------------------------------------
发票项目表:
------------------------------
| id | invoice_id | amount |
------------------------------
| 1 | 5 | 250 |
------------------------------
| 2 | 5 | 100 |
------------------------------
| 3 | 5 | 40 |
------------------------------
付款表:
------------------------------
| id | invoice_id | amount |
------------------------------
| 1 | 5 | 100 |
------------------------------
| 2 | 5 | 290 |
------------------------------
所需的输出:
--------------------------------------
| id | invoiceTotal | paymentTotal |
--------------------------------------
| 1 | 390 | 390 |
--------------------------------------
我已经试过
SELECT
i.id,
sum(ii.amount) as invoiceTotal,
sum(p.amount) as paymentTotal
FROM
invoices i
LEFT JOIN
invoice_items ii ON i.id = ii.invoice_id
LEFT JOIN
payments p ON i.id = p.invoice_id
WHERE
i.student_id = '25'
GROUP BY
i.id
什么这似乎做的是正确计算支付的总和,但invoice_items.amount
似乎已经由6重复查询(这是payments
的编号)。
我已阅读过SO here和here上的类似问题,但这些例子比我想要做的要复杂得多,我无法弄清楚要放在哪里。
@Stidgeon好吧,我更新了问题。 – Joseph