AYSTORY
LEFT OUTER JOIN의 조건절 활용 예시: 고객번호 필터링 본문
📌 쿼리 원문
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.고객번호;
📌 쿼리 동작 단계
- 기본 테이블
- 고객 A 전체를 기준으로 가져옴.
- 첫 번째 LEFT JOIN (단말기 B)
- 조인 조건:
- A.고객번호 IN (11000,12000) → 고객번호가 11000 또는 12000인 경우만 단말기와 매칭 시도
- A.단말기ID = B.단말기ID → 고객이 보유한 단말기와 단말기 테이블 매칭
- 따라서:
- 고객번호가 11000, 12000이면 → 단말기 정보 붙음
- 다른 고객번호면 → 단말기 컬럼 전부 NULL
- 조인 조건:
- 두 번째 LEFT JOIN (OS C)
- 조건: B.OSID = C.OSID
- 즉, 단말기가 매칭된 경우 그 단말기의 OS 정보를 붙임
- 단말기가 NULL이면 → OS 정보도 자동으로 NULL
- 정렬
- 결과는 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 |
