使用 Join 的 Oracle 更新查詢
考慮以下 Oracle 更新查詢:
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);
問題:🎜>
查詢執行由於缺少條件,該條件將確保子查詢為 t1 中的每個更新行傳回一行。解決方案:
要解決此問題,條件必須添加到子查詢中以將 t1 中的行與子查詢中的行相關聯。例如,可以使用以下條件:AND t1.some_key = t2.some_key產生的更新查詢將如下所示:
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);
其他注意事項:
以上是如何使用 JOIN 修復無限期運行的 Oracle UPDATE 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!