[MySQL] 두 개의 테이블간에 업데이트 하기

두 개의 테이블 간에 필드 값 일괄 업데이트 하기



문제

테이블 Table_A 와 Table_B 가 있다.

Table_A 의 pk가 3이상인 행에서 필드 field_a 는 Table_B의 field_b 값으로 업데이트되어야 한다.


해결

join 으로 해결

UPDATE Table_A as A left outer join Table_B as B ON A.pk = B.pk 
    SET A.field_a = B.field_b
    WHERE A.pk >= 3


참고

복잡한 구조인 경우 조인을 이용한 셀렉트문으로 각 필드가 정상적으로 조회 되는지 확인을 우선하고 시행한다.

SELECT A.field_a, B.field_b FROM Table_A as A left outer join Table_B as B ON A.pk = B.pk
    WHERE A.pk >= 3

특정 row(열)만 백업하기

MySql update two tables at once - StackOverflow