SQL Server/실기 정리
SQL Server 37강 - 서브쿼리를 활용한 INNER JOIN 비교 실습
코딩하는냥이
2025. 6. 4. 12:54
반응형
이번 글에서는 두 가지 방식의 INNER JOIN을 실습했습니다.
하나는 일반적인 JOIN 방식, 다른 하나는 서브쿼리를 JOIN에 사용하는 방식입니다.
둘 모두 동일한 결과를 만들 수 있지만, 복잡한 조건을 분리해 명확하게 표현할 때 서브쿼리 방식이 유용합니다.
📌 예제 코드 ①: 기본 INNER JOIN 방식
SELECT
a.symbol, a.company_name, a.ipo_year, a.sector, a.industry,
b.date, b.[open], b.[high], b.[low], b.[close], b.adj_close, b.volume
FROM nasdaq_company AS a
INNER JOIN stock AS b ON a.symbol = b.symbol
WHERE a.symbol = 'MSFT'
AND b.date >= '2021-10-01'
AND b.date < '2021-11-01';
💬 설명
- nasdaq_company와 stock 테이블을 symbol 기준으로 조인
- WHERE 조건에서 symbol 및 날짜 조건을 직접 지정
- 가장 직관적이고 일반적으로 사용되는 JOIN 방법
📌 예제 코드 ②: INNER JOIN + 서브쿼리 사용
SELECT
a.symbol, a.company_name, a.ipo_year, a.sector, a.industry,
b.date, b.[open], b.[high], b.[low], b.[close], b.adj_close, b.volume
FROM nasdaq_company AS a
INNER JOIN (
SELECT symbol, date, [open], [high], [low], [close], adj_close, volume
FROM stock
WHERE symbol = 'MSFT'
AND date >= '2021-10-01'
AND date < '2021-11-01'
) AS b ON a.symbol = b.symbol;
💬 설명
- stock 테이블에서 조건을 먼저 걸어놓은 서브쿼리를 만들어 조인
- 조건이 서브쿼리 내부에 있으므로, 메인 쿼리는 더 간단하게 유지 가능
- 복잡한 조건을 미리 필터링하고 나서 조인하는 경우 효과적
💡 포인트 정리
- INNER JOIN은 두 테이블을 기준 컬럼으로 묶는 기본 조인 방식
- 서브쿼리 JOIN은 조건 필터링이 복잡할 때 쿼리 구조를 분리하여 가독성 향상
- 성능 측면에서는 일반적으로 큰 차이 없지만, 서브쿼리가 커질 경우 인덱스 및 실행계획에 영향을 줄 수 있음
- 명확한 목적이 있다면 서브쿼리 방식도 매우 유용
📌 정리하자면, 이번 강의에서는 INNER JOIN을 직접 조건 필터링 방식과, 서브쿼리를 통한 방식으로 비교 실습해보았습니다.
둘 다 동일한 결과를 만들 수 있지만, 서브쿼리는 조건 분리가 필요하거나 코드 가독성을 높이고 싶을 때 효과적입니다.