[MySQL] 두개의 테이블의 데이터 조인하여 내용 Update
UPDATE 테이블 A INNER JOIN 테이블 B
ON A.조인할 컬럼명 = B.조인할 컬럼명
SET A.변경할 컬럼명 = 변경할값
( WHERE 조건절 )
테이블 A
a1 아이디
a2 비밀번호
a3 이름
a4 자기소개
테이블 B
b1 아이디
b2 특기
b3 취미
이렇게 두 테이블이 있을 때,
A 테이블의 a4 (자기소개) 필드의 데이터 뒤에 B테이블의 특기, 취미를 붙여넣고 싶다!
이럴 때 쿼리 한 문장으로 업데이트 할 수 있다.
두 테이블의 key 값은 아이디 A.a1 = B.b1
두 테이블을 조인(JOIN)할 때에는 서로 같이 묶어줄 칼럼이 있어야 한다.
UPDATE A, B SET A.a5 = CONCAT(A.a4, B.b2, B.b3) WHERE A.a1 = B.b1;
또는
UPDATE A INNER JOIN B ON A.a1 = B.b1 SET A.a5 = CONCAT(A.a4, B.b2, B.b3);
여기서 잠시 단순 Update 문과 비교해보면서 이해해보자.
Update 조인도 단순 Update 문과 다를게 하나도 없다. 참 쉽다.
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
UPDATE A, B
SET A.a5 = CONCAT(A.a4, B.b2, B.b3)
WHERE A.a1 = B.b1;
테이블이 1개 →테이블 2개 이상 으로 테이블이 좀더 늘어났다는 것
칼럼명은 어느 테이블의 칼럼인지 명확하게 구분해주고 있다는 것
조건절도 어느 테이블의 칼럼인지 명확하게 구분해주고 있다는 것