在 Oracle 中使用 Join 查询进行更新

2021-12-06 00:00:00 sql-update sql oracle oracle10g

查询有什么问题?(无限期执行)

what is wrong in query? (it executes indefinitely)

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);

请帮帮我.

推荐答案

您的查询对于通用 table1、table2 和 join_key 引用没有多大意义.

Your query does not make a whole lot of sense with the generic table1, table2, and join_key references.

如果这不是您要查找的内容,那么拥有一些示例数据以更好地了解您要查找的结果会很有帮助.

If this is not what you are looking for, it would be helpful to have some sample data to get a better idea of what results you are looking for.

update table1 t1
   set t1.col = (select t2.col
                 from table2 t2
                 where  t1.join_key = t2.join_key(+)  
                  and  t1.col is not null),
       t1.output = (select t2.output + t1.col
                    from  table2 t2
                   where  t1.join_key = t2.join_key(+)  
                     and  t1.col is not null);

相关文章