我有两个表“银行”和“债券”。每个用户都有银行记录,但可以有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