【问题标题】:SQL ORACLE UPDATE with Join [duplicate]带有联接的 SQL ORACLE UPDATE [重复]
【发布时间】:2017-01-18 22:41:11
【问题描述】:

如何在 Oracle SQL 中使用连接设置更新语句。示例不起作用。 我想通过连接从 F2 中选择记录来编辑表 F1。

UPDATE F1
SET    a1b2 = 58585, a1b3 = 98989 
FROM   FILE1 F1 
JOIN   FILE2 F2 ON F1.KEY = F2.KEY 
WHERE  F2.IDNBR = 99999

【问题讨论】:

  • “不工作”是什么意思?你是什​​么意思“如何设置更新语句?”你想做什么?您预计会发生什么,但会发生什么?
  • "寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误以及重现所需的最短代码它在问题本身。没有明确问题陈述的问题对其他读者没有用处。您既没有包含所需的行为,也没有包含特定的问题或错误。

标签: sql oracle


【解决方案1】:

如果我正确理解您的要求,那么它是关于更新 file1 中的值 a1b2a1b3 的所有那些在 file2 中具有相应行且带有 IDNBR=9999 的行。然后,我不会使用连接,而是使用简单的exists-check,如下所示:

UPDATE file1 SET a1b2 = 58585, a1b3 = 98989
where exists (
  select * from FILE2 F2 where file1.KEY = F2.KEY and F2.IDNBR = 99999)

是的,这行得通!条款有点生疏。谢谢。

【讨论】:

  • 能否请您为您的答案添加更多上下文。仅代码的答案很难理解。如果您可以在帖子中添加更多信息,这将对提问者和未来的读者都有帮助。
  • @RBT:完成;希望现在好多了。
  • 我想通过连接从 F2 中选择记录来编辑表 F1。
  • 不客气。请不要忘记接受答案,以便关闭主题。谢谢!
  • 我相信答案是封闭的,对吗?
猜你喜欢
  • 1970-01-01
  • 2016-08-23
  • 1970-01-01
  • 1970-01-01
  • 2020-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-14
相关资源
最近更新 更多