OUTER JOIN은 조인 조건을 만족하지 않는 행까지 함께 출력할 때 사용됩니다.
OUTER JOIN을 더 세부적으로 나누면
1. LEFT OUTER JOIN
2. RIGHT OUTER JOIN
3. FULL OUTER JOIN으로 나눌 수 있습니다.
이 내용은 다른 포스팅에서 다뤄보도록 하고,
이 포스팅에서는 OUTER JOIN 기호 '(+)'를 사용해서 OUTER JOIN을 해보겠습니다.
OUTER JOIN 시 활용되는 '(+)'
'(+)' 기호의 위치의 반대쪽 테이블이 OUTER JOIN의 기준이 되는 테이블입니다.
예를 들어서
WHERE A.ID = B.ID (+) 라는 구문이 있다면
A 테이블이 OUTER JOIN의 기준이 되는 테이블입니다.
A 테이블은 모든 데이터가 출력되고, B 테이블은 A 테이블의 조인 조건을 만족하는 경우 출력되며
만족하지 않는 경우 NULL로 표시됩니다.
먼저 임의로 세 개의 테이블을 구성했습니다.
1. STUDENT : 학생 테이블
- STU_ID : 학번 (PK)
- STU_NAME : 이름
- DEPARTMENT : 학과
2. SUBJECT : 과목 테이블
- SUB_CODE : 과목코드 (PK)
- SUB_NAME : 과목이름
3. SIGNUP_LIST : 수강 테이블
- SUB_CODE : 과목코드
- SUT_ID : 학번
INNER JOIN은 조인 조건을 만족하는 결과 행들만 출력합니다.
INNER JOIN을 활용한 예시는 다음과 같습니다.
예제 1 ) (INNER JOIN) - 컴퓨터공학과 학생들 중 컴퓨터공학개론을 수강하는 학생들의 리스트
출력 컬럼 : 과목코드, 과목명, 학번, 이름, 학과
출력예시 >
OUTER JOIN을 활용할 수 있는 예제를 보겠습니다.
예제 2 ) (OUTER JOIN) - 컴퓨터공학과 학생들의 컴퓨터공학개론의 수강여부
출력 컬럼 : 학번, 이름, 과목명, 수강여부
출력예시 >>
SELECT A.STU_ID
, A.STU_NAME
, B.SUB_NAME
, CASE WHEN C.STU_ID IS NOT NULL THEN 'Y' ELSE 'N' END AS SIGNUP_YU
FROM STUDENT A, SUBJECT B, SIGNUP_LIST C
WHERE A.STU_ID = C.STU_ID (+)
AND B.SUB_CODE = C.SUB_CODE (+)
AND A.DEPARTMENT_NAME = '컴퓨터공학과'
AND B.SUB_NAME = '컴퓨터공학개론'
이와 같은 예제에서 볼 수 있듯이 조인 조건을 만족하지 않은 데이터도 출력할 필요가 있습니다.
출력 결과의 3번 행은 조인 조건을 만족하지 않는 행이므로 C.STU_ID 를 SELECT 절에 기술하여 출력할 경우
NULL로 표시됩니다.
간단하게 OUTER JOIN에 대해 알아보았습니다.
https://titanic1997.tistory.com/50
'Database > DB이론' 카테고리의 다른 글
[SQL] JOIN정리 - INNER JOIN, OUTER JOIN, CROSS JOIN, FULL JOIN (0) | 2022.03.11 |
---|---|
[SQL] Join(조인)의 종류와 특징 (0) | 2022.03.09 |
[SQL] SUM, MAX, MIN 정리 (0) | 2021.11.23 |
[SQL] SELECT문 ORDER BY 정리 (0) | 2021.11.23 |
댓글