특정 KEY값이 동일한 테이블의 값을 일괄 UPDATE하기 위해
SELECT 결과로 UPDATE를 사용
예)
SELECT KEY1, COL1 FROM TB1 WHERE KEY1 IN('M111','M222','M333');
SELECT KEY1, COL1 FROM TB2 WHERE KEY1 IN('M111','M222','M333');
| cs |
UPDATE TB2 A
SET A.COL1 = (
SELECT B.COL
FROM TB1 B
WHERE A.KEY1 = B.KEY1
)
WHERE EXISTS (
SELECT 1
FROM TB1 B
WHERE A.KEY1 = B.KEY1
)
AND A.KEY1 = 'M111';
| cs |
- 업데이트 대상이 없을 때 테이블을 전부 뒤지므로 쓸데없는 행위 방지
UPDATE
(
SELECT A.KEY1, A.COL, B.COL COL_UP
FROM TB1 A, TB2 B
WHERE A.KEY1 = B.KEY1
)
SET COL = COL_UP
WHERE KEY1 = 'M111'
| cs |