如何从另一个表更新表中的值

时间:2013-11-17 01:11:22

标签: jdbc plsql

我需要更新表中的值(自己的值) - (其他表格中的值)为id

我试过这个

UPDATE FULLTABLE
            SET FULLTABLE.Balance = FULLTABLE.Balance - AdvBalance.balance
            WHERE FULLTABLE.id= AdvBalance.advid;

和这个

 update fulltable f set f.balance = ( f.balance - 

select a.balance from advbalance a where a.advid=f.advertiserID)

第一个是抛出无效标识符的错误。第二个是其他一些错误。

我正在使用oracle db。

请建议一种方法。

由于

1 个答案:

答案 0 :(得分:0)

您需要一个子选择来从另一个表中获取值:

UPDATE FULLTABLE ft
  SET ft.Balance = ft.Balance - (SELECT ab.balance
                                   FROM AdvBalance ab
                                 WHERE ft.id = ab.advid);

如果子查询可能返回多行,则会失败,但如果是这种情况,则必须决定如何找到要减去的正确值。