Tags
- stack
- 백트래킹
- M:N
- 이진트리
- Django
- distinct
- drf
- outer join
- delete
- update
- count
- regexp
- 뷰
- migrations
- 통계학
- 완전검색
- Tree
- 그리디
- SQL
- DB
- 쟝고
- Queue
- ORM
- 스택
- 트리
- Vue
- Article & User
- 큐
- N:1
- create
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Notice
Recent Posts
Link
데이터 분석 기술 블로그
LEFT(OUTER) JOIN 절 본문
예를 들어, 아래와 같은 두 개의 테이블이 있다고 가정해 봅시다.
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은 두 테이블 모두에서 일치하는 데이터만 가져옵니다. 만약 한쪽 테이블에 데이터가 없으면 해당 행은 결과에 포함되지 않습니다.
'SQL > 개념' 카테고리의 다른 글
CROSS JOIN 절 (0) | 2024.09.05 |
---|---|
FULL(OUTER) JOIN 절 (0) | 2024.09.04 |
RIGHT(OUTER) JOIN 절 (0) | 2024.09.03 |
INNER JOIN 절 (0) | 2024.09.01 |
JOIN 절 (0) | 2024.08.31 |