조인이 포함된 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 업데이트 쿼리를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!