0
我有兩個表,其結構如下。帶有嵌套選擇的MySQL更新
Accounts (acc_id, name, balance)
GeneralLedger GL (account_id, voucher_id, debit,credit)
我想通過計算總分類帳表中的總借項和總分來更新帳戶表中的帳戶餘額。
我嘗試以下查詢,但其沒有工作,沒有錯誤,但沒有更新任何記錄
UPDATE accounts a
INNER JOIN
(
SELECT gl.account_id, SUM(gl.debit) total_debit, SUM(gl.credit) total_credit
FROM general_ledger gl
WHERE gl.voucher_id=1
GROUP BY gl.account_id
) gl ON gl.account_id=a.account_id
SET a.balance = a.balance + (total_credit-total_debit)
WHERE a.acc_id=gl.account_id
它以什麼方式不起作用?你會得到一個語法錯誤還是不會給出預期的結果? –
不要以爲你需要最後一個WHERE子句,因爲鏈接已經在子選擇中定義。 –
@P.Salmon,查詢與0錯誤正常,但它不更新任何記錄 – user3554045