본문 바로가기
IT 개발

[SQL 기초] LEFT JOIN 예제를 통한 이해

by 로보찌빠냥 2024. 7. 3.

SQL에서 LEFT JOIN은 두 테이블을 조인할 때 사용되는 강력한 기능입니다. 이 조인은 첫 번째(왼쪽) 테이블의 모든 행을 반환하고, 두 번째(오른쪽) 테이블의 일치하는 행이 없으면 NULL 값을 반환합니다. 이를 통해 두 테이블 간의 관계를 명확히 하고, 왼쪽 테이블에 항상 있는 데이터를 기반으로 오른쪽 테이블의 데이터를 결합할 수 있습니다. 이 글에서는 LEFT JOIN의 개념을 이해하기 위해 예제와 함께 자세히 설명합니다.

[SQL 기초] LEFT JOIN 예제를 통한 이해

 

LEFT JOIN 기본 개념

LEFT JOIN은 다음과 같이 작동합니다:

  • 왼쪽 테이블의 모든 행이 결과 집합에 포함됩니다.
  • 오른쪽 테이블의 일치하는 행이 결과 집합에 포함됩니다.
  • 오른쪽 테이블에 일치하는 행이 없으면 NULL로 표시됩니다.

LEFT JOIN 기본 개념
출처 : w3school

기본 문법

SELECT A.*, B.*
FROM tableA A
LEFT JOIN tableB B ON A.common_column = B.common_column;
 

여기서 tableA는 왼쪽 테이블, tableB는 오른쪽 테이블입니다. ON 키워드는 두 테이블 간의 일치하는 열을 지정합니다.

예제: 학생과 수업

다음은 두 개의 테이블, students와 classes를 사용한 예제입니다. 각 학생이 수강하는 수업 정보를 결합합니다.

테이블 구조

students 테이블:

student_id name
1 Alice
2 Bob
3 Charlie

 

classes 테이블:

class_id student_id class_name
1 1 Math
2 2 Science
3 1 English

LEFT JOIN 쿼리

모든 학생의 정보를 가져오고, 각 학생이 수강하는 수업 정보를 결합하려면 다음과 같이 LEFT JOIN을 사용할 수 있습니다.

SELECT students.student_id, students.name, classes.class_name
FROM students
LEFT JOIN classes ON students.student_id = classes.student_id;

결과

위 쿼리의 결과는 다음과 같습니다:

student_id name class_name
1 Alice Math
1 Alice English
2 Bob Science
3 Charlie NULL

결과 해석

  • Alice는 Math와 English 수업을 수강하므로 두 행이 반환됩니다.
  • Bob은 Science 수업을 수강하므로 한 행이 반환됩니다.
  • Charlie는 수강하는 수업이 없으므로 class_name 열에 NULL이 표시됩니다.

✅ 직접 쿼리 실행해보기

LEFT JOIN 실행해보기

 

활용 예제

예제 1: 직원과 부서

employees 테이블과 departments 테이블이 있다고 가정합니다. 모든 직원의 정보를 가져오고, 각 직원이 속한 부서 정보를 결합합니다.

SELECT employees.employee_id, employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.department_id;
 

예제 2: 주문과 고객

orders 테이블과 customers 테이블이 있다고 가정합니다. 모든 주문의 정보를 가져오고, 각 주문을 한 고객의 정보를 결합합니다.

 

SELECT orders.order_id, customers.customer_name
FROM orders
LEFT JOIN customers ON orders.customer_id = customers.customer_id;

결론

LEFT JOIN은 데이터베이스 테이블 간의 관계를 이해하고 결합하는 데 강력한 도구입니다. 왼쪽 테이블의 모든 행을 유지하면서 오른쪽 테이블의 일치하는 데이터를 결합하여, 데이터의 불일치를 명확히 하고 필요한 정보를 종합할 수 있습니다. 다양한 상황에서 LEFT JOIN을 사용하여 효율적인 데이터 분석과 리포팅을 수행할 수 있습니다. 이 예제들을 통해 LEFT JOIN의 작동 방식을 이해하고 실제 데이터베이스 작업에 적용해 보세요.

반응형

댓글