Computer/Programming(코딩)

[데이터베이스, Database] JOIN

Lewis.yongmin 2015. 10. 14. 12:36

JOIN이란?

: 한 데이터베이스 내의 여러 테이블의 레코드를 각각의 공통 값을 이용하여 조합, 테이블로서 저장되거나, 그 자체로 이용할 수 있는 결과 셋을 만들어 낸다.



JOIN의 종류에는 여러가지가 있다.

1.CROSS JOIN(교차조인)

2.INNER JOIN(내부조인)

그리고 EQUI-JOIN(동일조인), NATURAL JOIN(자연조인), LEFT OUTER JOIN(왼쪽외부조인)

RIGHT OUTER JOIN(오른쪽외부조인), FULL OUTER JOIN(완전외부조인), SELF JOIN(자가조인)


이중 가장 많이 쓰이는 교차, 내부 조인에 대해 알아 볼 것이다.



예제>> 기본 두 테이블을 토대로 각각의 조인 결과를 보자

Employee 테이블
LastNameDepartmentID
Rafferty31
Jones33
Steinberg33
Robinson34
Smith34
JohnNULL
Department 테이블
DepartmentIDDepartmentName
31영업부
33기술부
34사무부
35마케팅















1. CROSS JOIN(교차조인)

: 두 테이블에서 곱집합을 반환한다. 즉, 두 번째 테이블로부터 각 열과 첫 번째 테이블에서 각 열이 한번씩 결합된 열을 만들 것이다. 예를 들어 m열을 가진 테이블과 n열을 가진 테이블이 교차 조인되면 m*n 개의 열을 생성한다.


SELECT * FROM employee CROSS JOIN department;

(=SELECT * FROM employee, department;)


Employee.LastNameEmployee.DepartmentIDDepartment.DepartmentNameDepartment.DepartmentID
Rafferty31영업부31
Jones33영업부31
Steinberg33영업부31
Smith34영업부31
Robinson34영업부31
JohnNULL영업부31
Rafferty31기술부33
Jones33기술부33
Steinberg33기술부33
Smith34기술부33
Robinson34기술부33
JohnNULL기술부33
Rafferty31사무부34
Jones33사무부34
Steinberg33사무부34
Smith34사무부34
Robinson34사무부34
JohnNULL사무부34
Rafferty31마케팅35
Jones33마케팅35
Steinberg33마케팅35
Smith34마케팅35
Robinson34마케팅35
JohnNULL마케팅35



2. INNER JOIN(내부조인)

: 가장 흔한 결합 방식이며, 기본 조인 형식으로 간주된다. 내부 조인은 조인 구문에 기반한 2개의 테이블(A, B)의 컬럼 값을 결합함으로써 새로운 결과 테이블을 생성한다.


SELECT * FROM employee INNER JOIN department

  ON employee.DepartmentID = department.DepartmentID;

(=SELECT * FROM employee, department

WHERE employee.DepartmentID = department.DepartmentID;)


Employee.LastNameEmployee.DepartmentIDDepartment.DepartmentNameDepartment.DepartmentID
Robinson34사무부34
Jones33기술부33
Smith34사무부34
Steinberg33기술부33
Rafferty31영업부31