MYSQL 테이블 JOIN 걸어서 UPDATE 방법
- Database
- 2023. 5. 24.
SQL에서 JOIN은 두 개 이상의 관계형 데이터베이스 테이블을 연결하는 데 사용됩니다. 이를 통해 서로 다른 테이블 간에 관계를 설정하고 테이블의 데이터를 함께 쿼리 할 수 있습니다. 예를 들어, A 테이블에 있는 값을 B 테이블에 update 할 수 있습니다. 잘 생각해 보면 특정 컬럼에는 여러 값들이 존재할 텐데, A 테이블 컬럼의 어떤 값을 B 테이블에 반영할까요? 그 기준을 JOIN으로 정할 수 있습니다.
JOIN
JOIN도 종류가 여러 가지이지만 이 글에선 가장 기본인 join에 대해 알아보겠습니다. JOIN은 INNER JOIN과 같은 의미입니다.
구문
UPDATE 테이블1
JOIN 테이블2 ON table1.컬럼 = table2.컬럼
SET 테이블1.컬럼 = 테이블2.컬럼;
예시 1)
books와 authors 테이블이 있습니다. 두 테이블을 보시면 author_id라는 컬럼을 공통적으로 갖고 있는 게 확인됩니다. 이 컬럼으로 join 할 수 있습니다.
예를 들어, 1900년 이전 태어난 작가들의 책 제목은 모두 대문자로 변경하려면 아래와 같은 구문을 사용할 수 있습니다.
UPDATE books
JOIN authors ON books.author_id = authors.author_id
SET books.title = UPPER(books.title)
WHERE authors.birth_year < 1900;
예시 2)
이 예시는 조금 형식적이라서, 이런 업데이트 구문을 왜 쓰는건지 이해가 안 되실 수도 있습니다. 그래도 테이블을 조인해서 업데이트를 하는 원리는 볼 수 있으니 참고하시기 바랍니다.
table1과 table2가 있습니다. 두 테이블은 id라는 컬럼을 공통적으로 가지고 있습니다.
table1에 있는 name 컬럼을 table2에 있는 city 컬럼 값으로 모두 update 해보겠습니다.
UPDATE table1
JOIN table2 ON table1.id = table2.id
SET table1.name = table2.city;
정상적으로 업데이트 됐습니다.
반응형
'Database' 카테고리의 다른 글
MongoDB 백업 및 복원 방법 (0) | 2023.05.28 |
---|---|
CentOS 7 MongoDB 설치 방법 (YUM) (0) | 2023.05.27 |
MariaDB root 비밀번호 재설정 방법 (잊어버렸을 때) (0) | 2023.05.22 |
PostgreSQL 패스워드 초기화 방법 (2) | 2023.05.19 |
맥북 MySQL Workbench 설치 방법 (0) | 2023.05.17 |