查询有什么问题? (它无限期地执行)
UPDATE table1 t1 SET (t1.col,t1.Output) = (
SELECT t2.col, t3.Output + t2.col
FROM tabl2 t3
LEFT JOIN table1 t2 ON t3.Join_Key = t2.Join_Key
WHERE t2.col is not NULL);
请帮我。
除非你的SELECT
子查询返回一行,您的UPDATE
语句应该失败并出现错误
ORA-01427: single-row subquery returns more than one row
一般来说,当您有相关更新时,您需要一些与外表中的行相关的条件T1
到内部子查询中的行,以确保子查询返回单行。这通常看起来像
UPDATE table1 t1 SET (t1.col,t1.Output) = (
SELECT t2.col, t3.Output + t2.col
FROM tabl2 t3
LEFT JOIN table1 t2 ON t3.Join_Key = t2.Join_Key
WHERE t2.col is not NULL
AND t1.some_key = t2.some_key);
最后,这个UPDATE
语句正在更新中的每一行T1
。这就是你的意图吗?或者您只想更新在子查询中找到匹配项的行?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)