DataBase
[SQL] Join
Beencle
2023. 3. 20. 17:03
데이터들을 정규화 하다보면 여러 테이블이 생기기 마련이다. 그런 데이터들을 조합하여 결과를 도출하기 위해 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 {조인 조건};