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_id | name |
|---|---|
| 1 | 김서준 |
| 2 | 박지민 |
| 3 | 이수민 |
| 4 | 최윤서 |
| 5 | 정민호 |
enrollments
| student_id | class_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;
쿼리 결과
| name | class_name |
|---|---|
| 김서준 | 수학 |
| 김서준 | 과학 |
| 박지민 | 역사 |
| 이수민 | NULL |
| 최윤서 | NULL |
| 정민호 | 미술 |
이수민과 최윤서처럼 수강 내역이 없는 학생도 결과에 포함되며, 해당 학생의 class_name 값은 NULL로 표시됩니다.
LEFT JOIN 사용 시점
LEFT JOIN은 다음과 같은 상황에서 유용합니다.
- 왼쪽 테이블의 모든 데이터를 기준으로 결과를 보고 싶을 때
- 매칭되지 않은 행을 포함해 누락 데이터를 분석해야 할 때
- 전체 목록을 생성하고, 연관 데이터가 없는 경우도 함께 보여야 할 때 (예: 구매 여부와 관계없이 모든 고객을 포함한 리스트)
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!