Sql使用join更新列

时间:2017-01-29 08:15:59

标签: sql oracle

有两个名为TEST1和TEST2的表,每个表都有两列,ID和NAME如下所示。

TEST1
ID  NAME
1   BOB
2   MIKE
3   TOM
4   TAMA

TEST2
    ID  NAME
    1   RAMIN
    2   RAHIM
    3   RONA
    4   ZAK
    6   ZENO
    7   YOURA
    8   SONE

我想用TEST2(NAME)更新表TEST1(NAME)列如果表TEST1中的ID与表TEST2中的ID匹配,则列值。

在查询下运行将导致此错误消息" ORA-00933:SQL命令未正确结束"

UPDATE tbl_test1 
SET    tbl_test1.NAME = tbl_test2.NAME 
FROM   tbl_test1 
   INNER JOIN tbl_test2 
           ON tbl_test1.id = tbl_test2.id 

1 个答案:

答案 0 :(得分:0)

最好使用MERGE

merge into tbl_test1 t
using tbl_test2 t2 on (t.id = t2.id)
when matched then
  update set t.name = t2.name;