我有一个选择查询,如下所示:
SELECT COL1, COL2, COL3
FROM
(
SELECT A.COL1, B.COL2, A.COL3
FROM
SCHEMA1.TAB1 A, SCHEMA2.TAB2 B
WHERE
A.SOMECOL = B.SOMECOL
) TEMP
WHERE NOT EXISTS
(
SELECT 1 FROM SCHEMA3.TAB3 C WHERE C.COL3 = TEMP.COL3
)
现在,在我当前的代码设置中,我首先运行SELECT
以获取结果,然后在下一步中,我通过迭代结果集来更新具有以下更新查询的表SCHEMA3.TAB3
:
UPDATE SCHEMA3.TAB3 SET COL1=?, COL2=? WHERE COL3=?
三个参数值来自上述SELECT
的结果。
但是,现在我想将选择和更新的两个步骤转换为带有子选择的单个更新语句,并完全取消参数设置。
我该怎么做?
答案 0 :(得分:0)
你的问题似乎有些不对劲。
您正在更新TAB3.COL3 = TAB1.COL3
的位置,但在原始SELECT
中更新您已取消TAB3.COL3 = TAB1.COL3
行的值。