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

LEFT JOIN

LEFT JOIN은 왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블에서 일치하는 행이 있으면 데이터를 가져오며, 일치하지 않는 경우 오른쪽 테이블의 컬럼에 NULL을 채웁니다.

왼쪽 테이블의 데이터를 기준으로 삼는다는 점이 핵심입니다.


LEFT JOIN 문법

LEFT JOIN의 문법은 다음과 같습니다.

LEFT JOIN 구문
SELECT columns
FROM table1
LEFT JOIN table2
ON table1.column = table2.column;
  • table1: 왼쪽 테이블 (결과에 항상 포함됨)
  • table2: 오른쪽 테이블 (조건이 맞는 경우에만 값이 채워짐, 없으면 NULL)

예시: Students와 Enrollments

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

students

student_idname
1김서준
2박지민
3이수민
4최윤서
5정민호

enrollments

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

쿼리 결과

nameclass_name
김서준수학
김서준과학
박지민역사
이수민NULL
최윤서NULL
정민호미술

이수민최윤서처럼 수강 내역이 없는 학생도 결과에 포함되며, 해당 학생의 class_name 값은 NULL로 표시됩니다.


LEFT JOIN 사용 시점

LEFT JOIN은 다음과 같은 상황에서 유용합니다.

  • 왼쪽 테이블의 모든 데이터를 기준으로 결과를 보고 싶을 때
  • 매칭되지 않은 행을 포함해 누락 데이터를 분석해야 할 때
  • 전체 목록을 생성하고, 연관 데이터가 없는 경우도 함께 보여야 할 때 (예: 구매 여부와 관계없이 모든 고객을 포함한 리스트)

다음 내용이 궁금하다면?

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