1
与another question类似的问题除了我拥有的三个表是分层的而不是两个并排的表。通过三个表的mysql连接
我有表是
我的顶级客户表
id | name
1 | alan
2 | bob
3 | charlie
我的2级发票表
id | client_id | paid
1 | 1 | 0
2 | 1 | 1
3 | 2 | 1
我的第3级服务表
id | invoice_id | amount
1 | 1 | 5.00
2 | 1 | 10.00
3 | 2 | 5.00
4 | 3 | 10.00
和我的德首创的结果是
id | name | amount_owing | amount_paid
1 | alan | 15.00 | 5.00
2 | bob | null | 10.00
3 | charlie | null | null
我能得到这并不考虑他们是否支付某事或不
SELECT
clients.email,
jnt.*
FROM clients
LEFT JOIN (
SELECT
invoices.client_id,
SUM(amount) AS invoice_total_paid
FROM
invoices,
services
WHERE
invoices.id = services.invoice_id
GROUP BY
invoices.client_id
) AS jnt ON clients.id = jnt.client_id
这给了我
id | name | client_id | invoice_total
1 | alan | 1 | 20.00
2 | bob | 2 | 10.00
3 | charlie | 3 | null
,但它不划分是否发票是否已付清(以及随后的付款和欠款总额)。任何帮助非常赞赏
你的SQL语句似乎不完整。添加到问题时是否存在复制/粘贴错字? – War10ck