본문 바로가기

DataBase

[SQL] Join

데이터들을 정규화 하다보면 여러 테이블이 생기기 마련이다. 그런 데이터들을 조합하여 결과를 도출하기 위해 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