MySQL JOIN 걸어서 UPDATE 하기

by 조쉬 posted Apr 12, 2017
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
DB작업을 하다보면 JOIN을 걸어서 UPDATE를 해야 할 경우가 간간히 생기는데요, MySQL에서는 서브쿼리 이딴거
필요 없습니다. 걍 우리가 아는 JOIN문 비스무레하게 아래 형식처럼 작성해 주시면 됩니다.

형식)
UPDATE [테이블명1] A INNER JOIN [테이블명2] B
ON A.[조인할 컬럼명] = B.[조인할 컬럼명]
SET [변경할 컬럼명] = 변경할값
( WHERE 절 )

조건이 필요한 경우는 WHERE 절 이하를 작성해 주시면 되고 필요한 조건이 없다면 생략하시면 됩니다.

예1)은 회원테이블과 후원테이블을 아이디로 INNER 조인을 건다음 회원등급이 9이면서, 후원금이 10000 이상
인 사람의 회원등급을 7로 변경해주는 쿼리의 예입니다.

예1)

UPDATE 후원테이블 A INNER JOIN 회원테이블 B
ON A.회원아이디 = B.회원아이디
SET B.회원등급 = 7
WHERE B.회원등급 = 9 AND A.후원금 >= 10000

예2)는 실제 테이블 적용 예입니다.

예2)
UPDATE support_table A INNER JOIN member_table B ON
A.sp_uid=B.user_id
SET B.level=7
WHERE B.level=9 AND A.support_money > 10000