【问题标题】:Update one table data from another table从另一个表更新一个表数据
【发布时间】:2013-10-16 21:42:22
【问题描述】:

我有源表和目标表。 源表和目标表都包含相同的列id,name,age,time

我正在按目标表更新源表

所以对于这个过程,我已经尝试过这个查询。但是它不起作用。你能告诉我这个查询有什么问题吗?

UPDATE source 
SET    source.name = target.name, 
       source.age = target.age, 
       source.time = target.time 
FROM   target 
       INNER JOIN source 
               ON source.id = target.id; 

【问题讨论】:

  • "这个查询有什么问题?"告诉我们它有什么问题,您是否得到异常或不正确的结果?
  • 先生,当我运行该查询时,我收到此错误>> ORA-00933:SQL 命令未正确结束
  • 即使使用 sql-server 也会出现 oracle 错误?
  • 先生,我使用 oracle 10g 版本的 sql...老实说先生,我几天前才开始学习 sql...所以请先生帮帮我:-)

标签: sql oracle oracle10g sql-update


【解决方案1】:

我听说 Oracle 在通过加入另一个表来更新表时会抛出此错误。尝试使用类似这样的子查询

UPDATE source a
SET a.name = (
              select b.SURNAME
              from target b
              where a.id = b.id
              ) 

【讨论】:

  • 我试过这个先生..它只适用于更新一列,但如何更新一个查询中的所有列
  • 您是否尝试过为每列添加多个子查询,我不确定,但值得一试。
  • 我确实试过了,先生,但它说我们不能使用超过 3 个这样的子查询
猜你喜欢
  • 1970-01-01
  • 2013-02-15
  • 2011-06-29
  • 2018-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多