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개 이상 으로 테이블이 좀더 늘어났다는 것
칼럼명은 어느 테이블의 칼럼인지 명확하게 구분해주고 있다는 것
조건절도 어느 테이블의 칼럼인지 명확하게 구분해주고 있다는 것
'SQL' 카테고리의 다른 글
MySQL Update Where 조건절 Subquery (1) | 2016.01.22 |
---|---|
MySQL 테이블간 참조무결성 (0) | 2015.09.28 |
[MySQL] DataDiff 함수 기능 테스를 위한 테이블 생성과 Query (0) | 2015.09.13 |
[MySQL] explain 실행계획(SQL 성능 튜닝) ★★★★ (0) | 2015.08.21 |
[MySQL] DB 데이터 전체 백업 및 다른 DB로 옮기기 (0) | 2015.08.19 |