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