반응형

DB에서 작업 중 테이블 하나에서 UPDAT하는 것이 아니라 여러개를 JOIN 해서 UPDATE해야 하는 경우가 종종 발생한다.

MySQL의 JOIN을 이용한 UPDATE 형식은 다음과 같다.

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

 

예를 들어 학생 테이블(TB_STUDENT)에 학생의 성별(GENDER) 컬럼이 있다고 하고,

학생 정보 테이블(TB_STUDENT_INFO)에 학생의 학년 컬럼(GRADE)이 있다고 하자.

여기서, 남학생(GENDER = 'M') 중에서 4학년(GRADE = 4)인 학생들의 학년을 5학년(GRADE = 5)으로 UPDATE한다고 가정해보자.

UPDATE TB_STUDENT_INFO A INNER JOIN TB_STUDENT B ON
A.STD_ID = B.STD_ID
SET A.GRADE = 5
WHERE A.GRADE = 4 AND B.GENDER = 'M'

이렇게 UPDATE 문을 작성할 수 있다.

반응형

+ Recent posts