【问题标题】:UPDATE multiple field values based on JOIN [duplicate]基于 JOIN 更新多个字段值 [重复]
【发布时间】:2013-06-10 21:31:39
【问题描述】:
UPDATE table1
SET
table1.field1 = table2.field1,
table1.field2 = table2.field2,
table1.field3 = table2.field3,
table1.fieldn = table2.fieldn
JOIN
table1 ON table2.joinfield = table1.joinfield

我在 Oracle (Toad for Oracle) 中遇到错误:ORA-00933: SQL 命令未正确结束

【问题讨论】:

  • 您无法在 Oracle 中更新 JOIN...它还没有实现标准的那部分。

标签: sql oracle join sql-update


【解决方案1】:

这可以通过MERGE 语法来解决:

merge into table1 t1 
using ( 
  select field1, field2, field3, joinfield
  from table2
  where table2.field1 = 0
) merge_set
on (
  t1.joinfield = merge_set.joinfield 
)
when matched then update
  set 
    t1.field1 = merge_set.field1,
    t1.field2 = merge_set.field2,
    t1.field3 = merge_set.field3

SQLFiddle example

另外看看referenceprovided by @Ben in comments的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 2015-07-05
    • 2022-12-12
    • 2014-12-25
    • 2016-05-12
    • 1970-01-01
    • 2013-07-13
    相关资源
    最近更新 更多