今天在工作中我使用了一个重新组合的查询:
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),这是正常行为吗?如何绕过此问题?
答案 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
)
)