SQL/개념
LEFT(OUTER) JOIN 절
데이터분석가 이채은
2024. 9. 2. 09:00
예를 들어, 아래와 같은 두 개의 테이블이 있다고 가정해 봅시다.
employees 테이블 (직원 정보):
employee_id | name | department_id |
1 | John | 101 |
2 | Alice | 102 |
3 | Bob | NULL |
departments 테이블 (부서 정보):
department_id | department_name |
101 | Sales |
102 | HR |
103 | Marketing |
여기서 employees 테이블은 직원 정보를 담고 있고, departments 테이블은 부서 정보를 담고 있습니다. 각 직원은 부서에 속해 있는데, 그 정보는 department_id를 통해 관리됩니다.
LEFT(OUTER) JOIN이란?
LEFT (OUTER) JOIN은 왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블에서 일치하는 데이터가 있으면 그 데이터를 함께 반환합니다. 만약 오른쪽 테이블에 일치하는 데이터가 없으면, 그 자리에는 NULL이 들어갑니다.
즉, 왼쪽 테이블에 있는 모든 데이터를 반환하면서, 오른쪽 테이블에 있는 데이터는 연결될 수 있으면 연결하고, 없으면 빈 값(NULL)으로 표시하는 방식입니다.
우리는 employees 테이블과 departments 테이블을 LEFT (OUTER) JOIN으로 결합해 각 직원의 이름과 그들이 속한 부서 이름을 출력하고 싶습니다.
SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.department_id;
name | department_name |
Jhon | Sales |
Alice | HR |
Bob | NULL |
- John은 department_id가 101로, Sales 부서에 속해 있습니다.
- Alice는 department_id가 102로, HR 부서에 속해 있습니다.
- Bob은 부서 정보가 없기 때문에, 결과에 포함되지 않았습니다. 이처럼 INNER JOIN은 두 테이블 모두에서 일치하는 데이터만 가져옵니다. 만약 한쪽 테이블에 데이터가 없으면 해당 행은 결과에 포함되지 않습니다.