DEV&OPS/Database
SQL 다른 테이블의 내용으로 여러 행 업데이트, 삭제
ALEPH.GEM
2021. 1. 8. 20:03
특정 테이블의 내용으로 테이블을 업데이트할 때가 있습니다.
이럴 때 join 을 이용하여 update 할 수 있습니다.
UPDATE 업데이트할테이블명 AS A
INNER JOIN 데이터를가져올테이블명 AS B
ON A.조인키 = B.조인키
SET A.업데이트할컬럼 = B.가져올데이터컬럼
WHERE 절
예제) 테이블(TBL__WRK)에 수정 일자(MODDATE)가 null 인 행들만 등록일자(REGDATE)로 업데이트
UPDATE TBL_WRK AS A
INNER JOIN TBL_WRK AS B
ON A.WRKID = B.WRKID
SET A.MODDATE = B.REGDATE
WHERE A.MODDATE IS NULL
테이블 내용을 기초로 DELETE 할 때는 조금 다릅니다.
DELETE
FROM TBL1 USING TBL_TEST1 AS TBL1
INNER JOIN TBL_TEST2 AS TBL2
WHERE TBL1.id=TBL2.id
728x90