如何使用另一个表更新表

时间:2015-09-21 19:47:05

标签: sql oracle

我有两个表table_A和Table_B

表-A

ID    Col1    Col2   Col3
123    2      A      JIM
456    2      A      JACK

表-B

ID    Col1    Col2   Col3
123    1       B      KIM
456    1       B      LEE

查询使用:

Update Table_A a, Table_B b
Set  a.Col1 = b.Col1,
     a.Col2 = b.Col2,
     a.Col3 = b.Col3
where a.ID = b.ID

目前的结果: 得到错误

所需结果:

我想用表2的值更新表1的值。

1 个答案:

答案 0 :(得分:1)

请尝试使用此代码:

Update
(
    Select  a.Col1, a.Col2, a.Col3,
            b.Col1 As New_Col1, 
            b.Col2 As New_Col2, 
            b.Col3 As New_Col3
    From    Table_A     a
    Join    Table_B     b   On  a.ID = b.ID
) ToUpdate
Set ToUpdate.Col1 = ToUpdate.New_Col1,
    ToUpdate.Col2 = ToUpdate.New_Col2,
    ToUpdate.Col3 = ToUpdate.New_Col3

参考:Update statement with inner join on Oracle