1 분 소요

JOIN 함수

두개 이상의 테이블을 연결하여 마치 하나의 테이블인것 처럼 조회하는 방식

집합연산자를 사용한 결과값은 세로로 연결

조인을 사용한 결과 값은 두개이상의 테이블 데이터를 가로로 연결

조인은 ‘내부조인(EQUI JOIN:등가조인)’ 방식을 의마하는 경우가 일반적

등가 조인: 조인조건이 =인 경우

 

1.CROSS JOIN

(교차조인,데카르트곱,CARTESAN - PRODUCT)

모든 경우를 고려한다(모든 데이터가 조합)

select*
from employees,departments
order by employee_id;

employees(107)*departments(27)값의 데이터가 조회된다

 

2.EQUL JOIN(내부조인:INNER JOIN)

select emp.department_id,first_name,department_name
from employees emp,departments dep
where emp.department_id = dep.department_id; (employees 테이블과 department 테이블에 같은 컬럼)
DEPARTMENT_ID	FIRST_NAME	DEPARTMENT_NAME
10	Jennifer	Administration
20	Pat	Marketing
20	Michael	Marketing
30	Sigal	Purchasing
30	Karen	Purchasing
30	Shelli	Purchasing
30	Den	Purchasing
30	Alexander	Purchasing
30	Guy	Purchasing
40	Susan	Human Resources
50	Kevin	Shipping
50	Jean	Shipping
50	Adam	Shipping
50	Timothy	Shipping
50	Ki	Shipping
50	Girard	Shipping
50	Douglas	Shipping

 

3.SQL 99

 SELECT <필드 목록>
 FROM < 번째 테이블>
          INNER JOIN < 번째 테이블>
          ON <조인조건> (or USING(조건열))
 [WHERE 일반 검색 조건]

 

4.natural join

자연 조인은 컬럼의 이름과 타입이 같은 컬럼을 찾아서 그열을 기준으로 등가 조인하는 것을 의미한다.

select department_id, first_name, department_name, manager_id
from employees emp natural join departments dep
order by department_id;
select department_id, manager_id
from employees
where department_id = 20;

 

natrual join을 이용해서 내부조인과 같은 결과가 나오도록 하기

select department_id, first_name, department_name
from employees natural join
(select department_id, department_name from departments);

 

5.join on 이용

select emp.employee_id, emp.first_name, dep.department_id,
from employees emp join departments dep
on (emp.department_id = dep.department_id);

 

6.join using 이용

using절은 식별자가 올 수 없다

select emp.employee_id,emp.first_name,department_id,dep.department_name
from employees emp join departments dep
using(delartment_id);

카테고리:

업데이트:

댓글남기기