본문 바로가기

DataBase

[Oracle] Join하여 Update 하기

반응형

특정 Table에 특정 값들을 Update해야 할때 다른 테이블을 Join 하여 업데이트 해야 할 때가 있다.

최근에 나의 경우 기존에 존재하던 Table에 지번 주소가 포함되어 있었는데, 도로명주소 전환에 따라 도로명 주소 컬럼을 추가하고 임시로 생성한 테이블에 id 와 변환된 도로명 주소를 넣었다. 그런후 해당 테이블끼리 id로 조인하여 기존 테이블에 업데이트를 진행하였다.


다음 예제는 TB_A라는 테이블에 new_addr, new_addr2의 데이터를 TB_B 테이블의 n_addr, n_addr2로 업데이트 하는 구문이다.


테이블명 : TB_A

Name

설명

 id

 고유 ID

 addr

 지번 주소

 addr2

 지번 상세주소

 new_addr

 도로명 주소

 new_addr2

 도로명 상세주소



테이블명 : TB_B

Name

설명

 id

 고유 ID

 n_addr

 도로명 주소

 n_addr2

 도로명 상세주소



UPDATE
     (
         SELECT
             a.new_addr
             , a.new_addr2
             , b.n_addr
             , b.n_addr2
         FROM
             TB_A a, TB_B b
         WHERE
             a.id = b.id
     )
 SET
     new_addr = n_addr
     , new_addr2 = n_addr2