-
OUTER JOIN 심화 (ANSI/ISO SQL 표준방식의 OUTER JOIN)SQLD/SQL 기본과 활용 2020. 8. 27. 19:51
참고1 ) (+)로 조인시, 불명확하게 보일 수도 있고, DMBS 마다 문법이 다르며,
(+)가 누락된 조인 및 검색 조건 존재시 INNER JOIN으로 수행, FULL OUTER JOIN 미지원 등 불편함이 있다.
참고2 ) 그리하여, ANSI/ISO SQL 표준 방식의 OUTER JOIN 문법을 사용하면 높은 호환성을 가질 수 있다.
본문은 ANSI/ISO SQL 표준 방식을 사용할 것이다. (FROM절에서 정의한다.)
수행에 사용한 데이터
좌) EMP, 우) DEPT 1. LEFT OUTER JOIN
- 조인 수행시 좌측 테이블이 기준이 되며 먼저 읽는다. 우측 테이블에서 조인 대상 데이터를 읽어온다.
- 즉, 우측 테이블에서 조인 조건을 만족하는 값이 없으면, NULL 값을 반환한다.
- LEFT JOIN 으로 OUTER 키워드를 생략 할 수 있다.
# LEFT OUTER JOIN SQL> SELECT A.ENAME, B.DNAME FROM EMP A LEFT OUTER JOIN DEPT B #(=FROM EMP A LEFT JOIN DEPT B) ON B.DEPTNO = A.DEPTNO; # 실행결과 ENAME DNAME ------------------ 유희선 영업 고종수 유통 이천수 마케팅 이청용 영업 박지성 생산 도롱뇽
2. RIGHT OUTER JOIN
- 조인 수행시 우측 테이블이 기준이 되며 먼저 읽는다. 좌측 테이블에서 조인 대상 데이터를 읽어온다.
- 즉, 좌측 테이블에서 조인 조건을 만족하는 값이 없으면, NULL 값을 반환한다.
- RIGHT JOIN 으로 OUTER 키워드를 생략 할 수 있다.
# RIGHT OUTER JOIN SQL> SELECT A.ENAME, B.DNAME FROM EMP A RIGHT OUTER JOIN DEPT B #(=FROM EMP A RIGHT JOIN DEPT B) ON B.DEPTNO = A.DEPTNO; # 실행결과 ENAME DNAME ------------------ 유희선 영업 이청용 영업 고종수 유통 박지성 생산 이천수 마케팅 SW개발 DMBS관리
3. FULL OUTER JOIN
- LEFT 와 RIGHT OUTER JOIN의 결과를 합집합으로 처리한 결과와 동일하다.
(조인에 성공한 행들은 교집합으로 간주하고 한번만 표시한다.)
(출력순서는 RIGHT -> LEFT 순이다)
- FULL JOIN 으로 OUTER 키워드를 생략 할 수 있다.
# FULL OUTER JOIN SQL> SELECT * FROM EMP A FULL OUTER JOIN DEPT B #(=FROM EMP A FULL JOIN DEPT B) ON B.DEPTNO = A.DEPTNO; # 실행결과 ENAME DEPTNO DEPTNO DNAME --------------------------------------------------------------------- 유희선 D01 D01 영업 이청용 D01 D01 영업 고종수 D02 D03 유통 박지성 D03 D03 생산 이천수 D04 D04 마케팅 D05 D05 SW개발 D06 D06 DMBS관리 도롱뇽
728x90'SQLD > SQL 기본과 활용' 카테고리의 다른 글
스칼라 서브쿼리(Scalar SubQuery), 인라인 뷰(Inline View), 뷰(View) (0) 2020.08.28 단일행 서브쿼리(Single Row SubQuery), 다중행 서브쿼리(Multi Row SubQuery), 다중 칼럼 서브쿼리(Multi Column SubQuery), 연관 서브쿼리(Correlated Subquery) (0) 2020.08.27 CROSS JOIN (0) 2020.08.27 다중 테이블 조인(ON 조건절, WHERE 절) (0) 2020.08.27 표준 조인(INNER JOIN, NATURAL JOIN,FROM 조건절, USING 조건절, ON 조건절) (0) 2020.08.27