MySQL(DB)

[바미] MySQL SELECT된 결과를 INSERT하기

Bami 2024. 3. 19. 22:26
728x90
반응형
INSERT INTO 목표테이블 (컬럼1, 컬럼2, ..., 컬럼N)
SELECT 컬럼1, 컬럼2, ..., 컬럼N
FROM 출처테이블
WHERE 조건;

 

위와 같은 패턴을 가지고 있는데요.

 

서로 다른 테이블에 INSERT 할 때

INSERT INTO new_users (id, name, email)
SELECT id, name, email
FROM users
WHERE active = 1;​

users 테이블에서 활성 상태인 사용자들의 id, name, email 정보를 선택하여 new_users 테이블에 삽입되는 예시입니다.

 

INSERT INTO orders_analysis (order_id, order_date, customer_id, total_amount)
SELECT order_id, order_date, customer_id, total_amount
FROM orders
WHERE order_date BETWEEN '2023-01-01' AND '2023-03-31';

또 위와 같이 특정 날짜를 조건으로 하여 데이터를 삽입 할 수 있는데 orders 테이블에서 지정된 기간 동안의 주문 데이터를 선택하여 orders_analysis 테이블에 삽입하도록 만든 예시입니다.

 

같은 테이블에 INSERT 할 때

INSERT INTO employees (employee_id, name, position, salary, department_id)
SELECT employee_id, name, position, salary, 20 -- 새로운 부서 ID로 설정
FROM employees
WHERE department_id = 10;

같은 테이블 내에서 특정 조건을 만족하는 데이터를 복사하는 경우도 있는데 이 처럼 employees 테이블에서 department_id가 10인 직원들의 정보를 같은 테이블 내에 새로운 부서로 복사(부서 ID 20)하는 쿼리로 만들 수 있습니다.

728x90
반응형