반응형

MySQL JOIN 걸어서 UPDATE 하는 방법


테이블 2개에 JOIN을 걸어서 UPDATE를 해야 할 경우가 생깁니다. 

JOIN문을 아래 형식처럼 select 구문과 비교 작성해 보았습니다. 


[select]

select [X.컬럼A]

from [테이블1] X

inner join [테이블2] Y on X.[조인된컬럼] = Y.[조인된컬럼]

where 절 


[update]

update [테이블명1] X 

inner join [테이블명2] Y on X.[조인된컬럼] = Y.[조인된컬럼]

set X.[컬럼A] = 변경할값

( WHERE 절 )


조건이 필요한 경우는 WHERE 절을 작성하면 됩니다. 



EX) 예시 입니다. 

1. [국가별 코드]와 사용되는 [인사말]를 가지고 있는 [테이블X] 가 있습니다.

2. [국가별 코드]와 사용되는 [언어 코드]를 가지고 있는 [테이블Y] 가 있습니다. 

3, 국가는 다르지만 사용되는 언어는 같을수 있습니다. 

4. 같은 언어로 된 메세지를 조인 조회해서 수정해야 할 경우를 예로 들어 보겠습니다.

5. 언어코드는 영어코드 'EN'을 사용 하는 메제지를 수정합니다.  



[select]

select [X.인사말]

from [테이블X] X

inner join [테이블Y] Y on X.[국가코드] = Y.[국가코드]

where Y.[언어코드] = 'EN'



[update]

update [테이블X] X

inner join [테이블Y] Y on X.[국가코드] = Y.[국가코드]

set [X.인사말] = '변경할 인사말'

where Y.[언어코드] = 'EN'


반응형

+ Recent posts