게으른 개발자의 끄적거림

DB insert문에 서브쿼리(select) 삽입 방법

끄적잉 2023. 11. 9. 22:19

DB insert문에 서브쿼리(select) 삽입 방법

 INSERT 문에 서브쿼리를 사용하는 방법은 MySQL기준으로 예를 들어, "employees" 테이블에 새로운 직원 정보를 추가할 때, 직원의 부서 번호를 다른 테이블에서 가져와야 할 경우가 있을 것입니다. 이럴 때는 아래와 같이 작성하면 됩니다.

```sql
INSERT INTO employees (employee_id, employee_name, department_id)
VALUES (1, 'John Doe', (SELECT department_id FROM departments WHERE department_name = 'Engineering'));
```

이와 같이 하면 서브쿼리 결과가 해당 컬럼에 들어가게 됩니다. 

 

다른 예시로 "orders" 테이블에 새로운 주문을 추가하고자 할 때, 해당 제품의 가격을 다른 테이블에서 가져와야 한다고 가정해봅시다.

 

 


```sql
INSERT INTO orders (order_id, product_id, quantity, total_price)
VALUES (101, 5, 3, (SELECT price FROM products WHERE product_id = 5) * 3);
```

위의 예시에서는 주문 정보를 추가하면서 서브쿼리를 사용하여 제품의 가격을 가져와서 주문의 총 가격을 계산하고 있습니다. 이런 식으로 서브쿼리를 활용할 수 있어요.