在Oracle中没有update from这样的语法,但是可以通过其他方法来实现,例如:
UPDATE A a SET a.field = (SELECT b.field FROM B b
WHERE a.keyfield = b.keyfield)
WHERE EXISTS (SELECT b.field FROM B b
WHERE a.keyfield = b.keyfield);
有几点需要注意:
1. 对于一个给定的a.keyfield的值,SELECT b.field FROM B b WHERE a.keyfield = b.keyfield 的值只能是一个唯一值,不能是多值。
2. 最后面的where EXISTS子句是重要的,否则将得到错误的结果。