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을 직접 조건 필터링 방식과, 서브쿼리를 통한 방식으로 비교 실습해보았습니다.
둘 다 동일한 결과를 만들 수 있지만, 서브쿼리는 조건 분리가 필요하거나 코드 가독성을 높이고 싶을 때 효과적입니다.