我有兩個表「銀行」和「債券」。每個用戶都有銀行記錄,但可以有0,1個或更多的債券記錄。MySQL更新字段值與多個返回行的子查詢
我想編寫一個腳本,在用戶可能持有的多重債券的利益下,更新「銀行」表中的「現金」字段。利息通過「債券」表的issuePrice * coupon字段計算。但是由於用戶可能持有多個債券,因此每個債券都應該這樣做。
此刻,我想是這樣的:
$MySQL->db_Query("UPDATE bonds bo, bank ba SET
ba.cash = ROUND(ba.cash + (bo.issuePrice * bo.coupon), 2),
ba.earned = ROUND(ba.earned + (bo.issuePrice * bo.coupon), 2)
WHERE LOWER(ba.user) = LOWER(bo.holder) AND
LOWER(bo.holder) <> LOWER('Bank');");
但它沒有給出預期的結果。我試着用2個債券的用戶,如果兩個債券每個應該給500個利息,所以總共1000個,它只增加500個,就像只有1個債券。如果我設置一個債券500利息和其他一家擁有1000計算利息,它突然增加了475
轉換它到一個SELECT,並確認輸出是你所期望的 – 2010-12-10 21:26:42