[sql] 중첩 쿼리를 활용한 데이터베이스 테이블 통합
데이터베이스에서 때로는 여러 테이블에 저장된 정보를 필요로 할 때가 있습니다. 이 경우 중첩 쿼리를 사용하여 데이터베이스 테이블을 효과적으로 통합할 수 있습니다.
중첩 쿼리란?
중첩 쿼리는 하나의 SQL 문 안에 또 다른 SQL 문을 포함하는 것을 의미합니다. 이를 통해 여러 테이블의 정보를 조합하거나, 서브쿼리의 결과를 기반으로 조건을 부여하여 원하는 정보를 추출할 수 있습니다.
SELECT column1, column2, ...
FROM table1
WHERE column1 = (SELECT column1 FROM table2 WHERE condition);
위 예제에서는 table1
의 특정 열 값이 table2
의 서브쿼리 결과와 일치하는 행을 선택하는 방법을 보여줍니다.
데이터베이스 테이블 통합하기
예를 들어, 고객 정보와 주문 정보가 각각 customers
와 orders
테이블에 저장되어 있다고 가정해봅시다. 이 두 테이블을 통합하여 특정 주문에 대한 고객의 정보와 주문 정보를 함께 조회하고 싶을 때 중첩 쿼리를 활용할 수 있습니다.
SELECT customer_name, order_date, order_total
FROM customers
JOIN orders ON customers.customer_id = orders.customer_id
WHERE order_id = (SELECT order_id FROM orders WHERE condition);
위 쿼리는 customers
와 orders
테이블을 조인하고, 서브쿼리를 활용하여 특정 주문에 대한 정보를 추출하는 방법을 보여줍니다.
이와 같이 중첩 쿼리를 사용하면 필요에 맞게 테이블을 효과적으로 통합할 수 있으며, 복잡한 데이터베이스 구조에서도 원하는 정보를 추출할 수 있습니다.
참고 문헌:
- MySQL Official Documentation, “Subqueries”: https://dev.mysql.com/doc/refman/8.0/en/subqueries.html