AYSTORY

LEFT OUTER JOIN의 조건절 활용 예시: 고객번호 필터링 본문

SQLD

LEFT OUTER JOIN의 조건절 활용 예시: 고객번호 필터링

bye0nzn 2025. 8. 19. 13:38

 

📌 쿼리 원문

SELECT A.고객번호, A.고객명, 
       B.단말기ID, B.단말기명, 
       C.OSID, C.OS명
FROM 고객 A 
     LEFT OUTER JOIN 단말기 B
       ON (A.고객번호 IN (11000,12000) 
           AND A.단말기ID = B.단말기ID)
     LEFT OUTER JOIN OS C
       ON (B.OSID = C.OSID)
ORDER BY A.고객번호;

 

 

📌 쿼리 동작 단계

  1. 기본 테이블
    • 고객 A 전체를 기준으로 가져옴.
  2. 첫 번째 LEFT JOIN (단말기 B)
    • 조인 조건:
      • A.고객번호 IN (11000,12000) → 고객번호가 11000 또는 12000인 경우만 단말기와 매칭 시도
      • A.단말기ID = B.단말기ID → 고객이 보유한 단말기와 단말기 테이블 매칭
    • 따라서:
      • 고객번호가 11000, 12000이면 → 단말기 정보 붙음
      • 다른 고객번호면 → 단말기 컬럼 전부 NULL
  3. 두 번째 LEFT JOIN (OS C)
    • 조건: B.OSID = C.OSID
    • 즉, 단말기가 매칭된 경우 그 단말기의 OS 정보를 붙임
    • 단말기가 NULL이면 → OS 정보도 자동으로 NULL
  4. 정렬
    • 결과는 A.고객번호 기준 오름차순 정렬

'SQLD' 카테고리의 다른 글

LEFT OUTER JOIN 뒤 WHERE 절  (1) 2025.08.19
사원이 없는 부서도 포함하려면? LEFT OUTER JOIN  (0) 2025.08.19
USING 쓸 때 ALIAS 사용  (0) 2025.08.19
ORACLE과 SQL Server에서의 차이  (2) 2025.08.19
Part2 - Ch3. 관리 구문  (7) 2025.08.04