본문 바로가기
Database/DB이론

[SQL] OUTER JOIN의 (+) 기호란

by Ratataca 2022. 3. 11.

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

 

[SQL, 오라클] 1. OUTER JOIN이란? (+) 를 이용한 간단 예제

OUTER JOIN 완벽 이해하기 [SQL, 오라클] 1. OUTER JOIN이란? (+) 를 이용한 간단 예제 [SQL, 오라클] 2. LEFT/RIGHT/FULL OUTER JOIN 이란? + 간단 예제 [SQL, 오라클] 3. OUTER JOIN으로 NULL값 이해하..

titanic1997.tistory.com

 

댓글