http://ultteky.egloos.com/10411192
**
테이블 EMP(사원), DEPT(부서) 가 있다고 하자.
사원 중 DEPT_CD 가 A01, A02 인 사원 중에
부서와 연결하여 EMP.EMP_NM(사원명), DEPT.DEPT_NM(부서명)을 가져오고 싶다.
단 부서 중에 유효한(VALID_YN = 'Y') 것만 연결을 하고 싶다.
부서와 연결 안된 사원도 모두 가져오고 싶다.
이럴때 아래와 같이 사용해야 한다.
SELECT EMP.EMP_NM, DEPT.DEPT_NM
FROM EMP
LEFT JOIN DEPT
ON(1=1
AND DEPT.DEPT_CD = EMP.DEPT_CD
AND DEPT.VALID_YN = 'Y'
)
WHERE 1=1
AND EMP.DEPT_CD IN ('A01', 'A02')
간단히 말하면
중요 테이블을 EMP 라고 하고 안중요 테이블은 DEPT 이라 했을 때
(DEPT 와 연결 안된 EMP 도 가져와야 하므로)
중요 테이블을 EMP 라고 하고 안중요 테이블은 DEPT 이라 했을 때
(DEPT 와 연결 안된 EMP 도 가져와야 하므로)
->
WHERE 1=1
AND EMP.DEPT_CD IN ('A01', 'A02')
->
AND DEPT.VALID_YN = 'Y'
당연히 JOIN 조건(연결 조건)은 ON 에 걸어야 한다.(WHERE 에 걸면 안됨)
->
AND DEPT.DEPT_CD = EMP.DEPT_CD
**
OUTER 조인 말고 INNER JOIN 은
연결조건, 필터조건 모두 ON 에 걸든 WHERE 에 걸든 상관없다.
**
테스트 해봐야지...
댓글 없음:
댓글 쓰기