MS-SQL 두 테이블을 조인(join)하여 업데이트하는 방법



두 테이블을 조인(JOIN)하여 한 테이블의 값들을  다른 대상이 되는 테이블에 업데이트 하는 방법에 대하여 알아보고자 합니다

텍스트 쿼리는 포스팅 하단에 있습니다 

보고 이해하기 쉽게  먼저 이미지를 올려 설명을 드리고자 합니다


먼저 테스트를 위한 준비로 테이블과 데이터를 생성 해 보도록 하겠습니다


단계1 > 업데이트 대상 테이블을 생성합니다

쿼리

결과1> 

결과



단계2> 업데이트 할 값을 가지고 있는 테이블을 생성합니다

쿼리

결과2>

결과



단계3> A테이블과 B테이블을 조인하여 키 값이 Key2인 데이터만 B테이블 값으로 업데이트 합니다

          키 값을 조건으로 주지 않으면 모두 업데이트 됩니다 각 키값에 해당하는 B테이블 값돌로 업데이트 되도록

          조건을 주었습니다

쿼리

결과3>



>> 위에서 설명드린 쿼리 입니다


SELECT A.*

          INTO #TEMP_TABLE01

FROM (SELECT 'Key1' COL1

                   ,'Value1-A' COL2

                   ,'Value1-B' COL3       

          UNION 

          SELECT 'Key2' COL1

                   ,'Value2-A' COL2

                   ,'Value2-B' COL3) A    



SELECT * FROM #TEMP_TABLE01            




SELECT A.*

      INTO #TEMP_TABLE02

FROM (SELECT 'Key1' COL1

            ,'Value1-C' COL2

            ,'Value1-D' COL3       

         UNION 

         SELECT 'Key2' COL1

                  ,'Value2-C' COL2

                  ,'Value2-D' COL3) A      


SELECT * FROM #TEMP_TABLE02 



UPDATE A

 SET A.COL2 = B.COL2

      ,A.COL3 = B.COL3

FROM #TEMP_TABLE01 A, #TEMP_TABLE02 B

WHERE A.COL1 = B.COL1

  AND B.COL1 = 'Key2'


SELECT * FROM #TEMP_TABLE01  



이렇게 하여 테이블을 조인하여 업데이트 하는 방법에 대하여 알아 보았습니다


Posted by JOY [바가지]

댓글을 달아 주세요