본문으로 건너뛰기
실습하기

FULL OUTER JOIN

FULL OUTER JOIN왼쪽 테이블과 오른쪽 테이블의 모든 행을 반환합니다.

일치하는 값이 있으면 두 테이블의 데이터를 결합해 보여주고, 일치하지 않는 경우 누락된 값은 NULL로 채워집니다.


FULL OUTER JOIN 문법

FULL OUTER JOIN 구문
SELECT columns
FROM table1
FULL OUTER JOIN table2
ON table1.column = table2.column;

FULL OUTER JOINLEFT JOINRIGHT JOIN합집합과 같은 역할을 합니다.


FULL OUTER JOIN 예시

아래 예시는 students 테이블과 enrollments 테이블을 FULL OUTER JOIN으로 결합한 예시입니다.

students

student_idname
1김민수
2박지현
3이서준
4최예린
5정수진

enrollments

student_idclass_name
1수학
1과학
2역사
3미술
FULL OUTER JOIN 예시
SELECT students.name, enrollments.class_name
FROM students
FULL OUTER JOIN enrollments
ON students.student_id = enrollments.student_id;

쿼리 결과

nameclass_name
김민수수학
김민수과학
박지현역사
이서준미술
최예린NULL
정수진NULL

일치하는 학생과 과목뿐 아니라, 수강 내역이 없는 학생, 학생 정보가 없는 수강 기록까지 모두 포함됩니다.


FULL OUTER JOIN 사용 시점

FULL OUTER JOIN은 다음과 같은 경우에 유용합니다.

  • 두 테이블의 데이터를 빠짐없이 모두 보고 싶을 때
  • 어느 테이블에서 누락된 값이 있는지 확인할 때
  • 두 테이블 간 데이터의 정합성을 점검하거나 감사할 때

참고: SQLite와 MySQL은 FULL OUTER JOIN을 기본적으로 지원하지 않습니다. 대신 LEFT JOINRIGHT JOIN 결과를 UNION으로 결합해 유사한 동작을 구현할 수 있습니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!