문제 링크 : https://velog.io/@yooha9621/SQLP실기문제-대량DML튜닝33번
SQL >
UPDATE 고객 C
SET 법정대리인_연락처 =
NVL( (SELECT 연락처
FROM 고객
WHERE 고객번호 = C.법정대리인_고객번호)
,C.법정대리인_연락처)
WHERE 성인여부 = 'N';
SQL >
UPDATE (
SELECT /*+ LEADING(A) USE_NL(B) */ A.법정대리인_연락처, B.연락처
FROM 고객 A , 고객 B
WHERE
A.성인여부 = 'N'
AND B.고객번호 = A.법정대리인_고객번호
AND B.연락처 <> A.법정대리인_연락처 --이미 같으면 업데이트 하지 않는다.
AND B.연락처 IS NOT NULL )
SET 법정대리인_연락처 = 연락처;
🍎 정리
- 수정가능 조인뷰를 활용해 2번 액세스하는 걸 1번 액세스로 줄여 update하였다.