[sql] 서브쿼리를 사용한 데이터 조인

서브쿼리(subquery)는 SQL 문장 내에서 다른 SQL 문장을 포함하여 실행하는 방법입니다. 서브쿼리는 주로 SELECT, INSERT, UPDATE, DELETE 문에서 사용되며, 특히 데이터 조인 시 많이 활용됩니다.

서브쿼리를 사용하여 데이터를 조인하는 방법에 대해 살펴보겠습니다.

1. 서브쿼리를 활용한 INNER JOIN

서브쿼리를 사용하여 INNER JOIN을 수행할 수 있습니다. 예를 들어, 두 개의 테이블에서 일치하는 데이터를 가져올 때 서브쿼리를 사용할 수 있습니다.

SELECT column1, column2 
FROM table1
INNER JOIN (
    SELECT id, column3 
    FROM table2
) AS subquery 
ON table1.id = subquery.id;

위 예제에서는 table1table2 두 테이블을 INNER JOIN하면서, 서브쿼리를 활용하여 table2의 일부 열을 선택한 후 조인하고 있습니다.

2. 서브쿼리를 활용한 WHERE 절에서의 데이터 필터링

서브쿼리를 사용하여 WHERE 절에서 데이터를 필터링하는 데에도 활용할 수 있습니다. 예를 들어, 특정 조건에 맞는 데이터를 검색하거나 조회할 때 서브쿼리를 사용할 수 있습니다.

SELECT column1, column2 
FROM table1
WHERE id IN (
    SELECT id 
    FROM table2
    WHERE condition = 'value'
);

위 예제에서는 table1에서 table2의 특정 조건을 만족하는 id 값을 가진 데이터만을 조회하고 있습니다.

3. 서브쿼리를 활용한 INSERT 문에서의 데이터 삽입

서브쿼리는 INSERT 문에서도 데이터를 삽입할 때 활용할 수 있습니다. 다른 테이블의 데이터를 기반으로 새로운 테이블에 데이터를 추가하는 등 다양한 활용이 가능합니다.

INSERT INTO table1 (column1, column2)
SELECT column3, column4 
FROM table2
WHERE condition = 'value';

위 예제에서는 table2의 특정 조건을 만족하는 데이터를 선택하여 table1에 추가하는 INSERT 문을 수행하고 있습니다.

서브쿼리를 사용하여 데이터 조인을 수행하는 방법에 대해 간략하게 알아보았습니다. 서브쿼리를 적절히 활용하면 보다 복잡한 데이터 처리 작업을 수월하게 할 수 있습니다.