如何从其他表中更新表中的值

Posted

技术标签:

【中文标题】如何从其他表中更新表中的值【英文标题】:how to update value in a table from other table 【发布时间】:2013-11-17 01:11:21 【问题描述】:

我需要用(自己的值)-(其他表中的值)来更新表中的值

我试过了

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 数据库。

请提出一种方法来做到这一点。

谢谢

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于如何从其他表中更新表中的值的主要内容,如果未能解决你的问题,请参考以下文章

MySQL:通过其他表中的值更新列值

从表中的多个值中选择不在数组中的位置

如何将一个表中的值插入另一个表,然后更新原始表?

从mysql 5.7中的变量将多行插入表中

根据其他表中的值更新表列

如何根据与另一个表中的值的比较来更新列