日期:2014-05-17  浏览次数:20745 次

我想根据一张表的内容去更新另一张表该怎么做
假设有表OBJECT(code,location,position。。。。),RELATION(code,location,position。。。)。
现在object里面只有code的值,location和position为空,OBJECT的code与RELATION的code是相同的字段,也就是可以拿来做连接的条件。
现在我想把OBJECT里面的值更新,就是根据code到relation去查。
目前用存储过程先根据code去查出position和location之后再更新。但是做起来很慢,我也建了索引。有没有能够之间连接两张表然后直接一步到位的更新方法。
oracle 连接

------解决方案--------------------
merge into
------解决方案--------------------
直接更新不行么


update OBJECT a 
set (location,position) = (select location,position from RELATION b where a.code= b.code)

------解决方案--------------------
MERGE INTO OBJECT A
USING RELATION B
ON A.CODE=B.CODE
WHEN MATCHED THEN 
UPDATE SET
A.POSITION=B.POSITION,
A.LOCATION=B.LOCATION