RIGHT JOIN
RIGHT JOIN은 오른쪽 테이블의 모든 행을 반환하고, 왼쪽 테이블에서 일치하는 값이 있으면 해당 데이터를 함께 가져옵니다.
만약 일치하는 값이 없으면 왼쪽 테이블의 컬럼에는 NULL이 채워집니다.
RIGHT JOIN 문법
RIGHT JOIN 문법
SELECT columns
FROM table1
RIGHT JOIN table2
ON table1.column = table2.column;
- 오른쪽 테이블:
RIGHT JOIN뒤에 오는 테이블 - 오른쪽 테이블의 모든 행이 결과에 포함되며, 일치하지 않는 경우에도
NULL값으로 표시됨
RIGHT JOIN 예시
아래 예시는 students 테이블과 enrollments 테이블을 RIGHT JOIN으로 결합한 예시입니다.
students
| student_id | name |
|---|---|
| 1 | 김민수 |
| 2 | 이지은 |
| 3 | 박서준 |
| 4 | 최지민 |
| 5 | 오세훈 |
enrollments
| student_id | class_name |
|---|---|
| 1 | Math |
| 2 | History |
| 3 | Science |
| 6 | Art |
| 7 | Economics |
RIGHT JOIN 예제
SELECT students.name, enrollments.class_name
FROM students
RIGHT JOIN enrollments
ON students.student_id = enrollments.student_id;
쿼리 결과
| name | class_name |
|---|---|
| 김민수 | Math |
| 이지은 | History |
| 박서준 | Science |
| NULL | Art |
| NULL | Economics |
student_id가 6과 7인 수업(Art, Economics)은 학생 테이블에 해당 데이터가 없으므로 name 값이 NULL로 표시됩니다.
RIGHT JOIN 사용 시점
RIGHT JOIN은 다음과 같은 경우에 적합합니다.
- 오른쪽 테이블의 모든 행을 반드시 보존해야 할 때
- 왼쪽 테이블에 없는 데이터까지 포함해 누락 여부를 확인할 때
- 오른쪽 테이블 중심으로 데이터를 분석하거나 리포트를 작성할 때
참고: SQLite는
RIGHT JOIN을 기본적으로 지원하지 않습니다. 이 경우 테이블 순서를 바꿔LEFT JOIN을 사용하거나 서브쿼리로 우회할 수 있습니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!