728x90
320x100
JOIN을 통한 UPDATE 실행
여러개의 테이블을 JOIN을 사용하여 UPDATE 해야할 경우가 있다.
SELECT 할 때 처럼 JOIN 후 UPDATE 해주면 된다.
UPDATE TABLE1 SET TABLE1.컬럼1 = 변경값 WHERE 절
UPDATE 의 경우, 테이블에 대한 정의가 먼저 나오므로, JOIN이 SET 보다 먼저 이루어지면 된다.
TABLE1 이 "국가와 언어 그리고 해당 지역들"을 나타내는 곳이라고 하자.
그런데 현재 지역들 컬럼은 NULL 이고,
이 지역들 값을 다른 테이블과 JOIN하여 값을 변경해야 한다면,
TABLE2 는 "국가와 지역"을 나타낸다면
TABLE1 은 TABLE2 과 "국가"컬럼을 JOIN 하여 지역들 값을 UPDATE 할 수 있다.
먼저 TABLE2를 국가별 지역들로 만들어 보자.
SELECT
국가, GROUP_CONCAT(지역) AS 지역들
FROM TABLE2
GROUP BY 국가
TABLE1 을 X라 하고, 위의 조합을 Y 라 하면 아래와 같이 UPDATE 문을 작성하면 된다.
UPDATE TABLE1 X
INNER JOIN
(
SELECT
국가, GROUP_CONCAT(지역) AS 지역들
FROM TABLE2
GROUP BY 국가
) Y ON Y.국가 = X.국가
SET X.지역들 = Y.지역들
728x90
반응형
'MariaDB SQL' 카테고리의 다른 글
MariaDB SUBSTRING_INDEX(특정 문자로 구분하여 문자열 나누기) (0) | 2024.01.23 |
---|---|
MariaDB 문자를 숫자로, 숫자를 문자로 변환 (0) | 2024.01.05 |
MariaDB WITH ROLLUP (그룹별 요약 구하기) (0) | 2023.11.15 |
MariaDB LPAD (왼쪽 공백에 특정문자 채우기) (0) | 2023.10.25 |
MariaDB RPAD (왼쪽부터 자르거나, 오른쪽에 특정문자 채우기) (0) | 2023.10.17 |