데이터들을 정규화 하다보면 여러 테이블이 생기기 마련이다. 그런 데이터들을 조합하여 결과를 도출하기 위해 JOIN을 사용한다.
Equi join
두 테이블에서 공통적으로 존재하는 컬럽의 값이 일치되는 행을 연결해서 결과를 생성하는 것을 equal join이라 한다.
select d.department_name
from employees e, departments d
where e.department_id = d.department_id
and e.employee_id = 110;
Inner Join & Outer Join
- Inner Join : 두 테이블을 조인했을때 조건에서 값이 일치하는 컬럼만 반환
select d.department_name
from employees e
join departments d
on e.department_id = d.department_id
where e.employee_id = 110;
- Outer Join : 두 테이블을 조인했을때 기준 테이블에서 다른 테이블의 값이 없으면 NULL을 넣어서 반환
select d.department_name
from employees e
outer join departments d
on e.department_id = d.department_id
where e.employee_id = 110;
3가지 Join의 차이점
- 굳이 나누자면 Equal Join과 Non-Equi Join이라는 점인데 크게 다르지 않다. Equi Join은 inner 조인과 매우 흡사한데, Equi Join은 조건이 = (equality operator)만 사용이 가능하고, Inner Join은 그 외에 <,>,<>,= 연산자도 사용가능 하다는 점이 있다. 그렇지만 Equi Join은 같은 값이 존재해야만 반환하기 때문에 Outer Join 과는 전혀 다르다고 할 수 있다.
JOIN 형식
SELECT table_nameN.column_name, ...
FROM table_name1
{조인 종류} JOIN table_name2
ON {조인 조건};
'DataBase' 카테고리의 다른 글
[DB] SQL 구문 순서, 실행 순서 (0) | 2023.03.20 |
---|---|
[SQL] JOIN - 2 (0) | 2023.03.20 |
[SQL] CASE WHEN THEN END (0) | 2023.03.20 |
[SQL] NULL 관련 함수 (0) | 2023.03.20 |
TOP, LIMIT, ROWNUM (0) | 2023.03.20 |