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 강의를 등록해 주세요!