嵌套的SQL查询

时间:2015-07-08 17:56:44

标签: sql oracle-sqldeveloper

今天在工作中我使用了一个重新组合的查询:

Update myTable mt_1 Set (VALUE_1, VALUE_2) = 
(
   Select val_1 as VALUE_1, val_2 as VALUE_2 
  From myTable mt_2
  Where mt_2.ID = mt_1.ID
  )

它工作得很好然后,我需要以这种方式嵌套我的查询:

Update myTable mt_1 Set (VALUE_1, VALUE_2) = 
(
    Select * From (
       Select val_1 as VALUE_1, val_2 as VALUE_2 
       From myTable mt_2
       Where mt_2.ID = mt_1.ID
     )
  )

在那里,甲骨文大吼我说,该领域" mt_1"。" ID"以某种方式不知道。

通过嵌套查询,在外部定义但未在其他任何地方覆盖的表会丢失其范围(此处为mt_1),这是正常行为吗?如何绕过此问题?

1 个答案:

答案 0 :(得分:0)

您错过了mt_1别名,而不是第一个查询。见下面的第1行。

Update myTable mt_1 Set (VALUE_1, VALUE_2) = 
(
    Select * From (
       Select val_1 as VALUE_1, val_2 as VALUE_2 
       From myTable mt_2
       Where mt_2.ID = mt_1.ID
     )
  )