SQL

이퀴조인 (EQUI JOIN) 아우터 조인(Outer Join)

dev.mk 2020. 4. 5. 18:19
반응형

1. EQUI JOIN 조인

 - EQUI JOIN은 각 테이블간에 공통된 걸럼(조건)으로 데이터를 합쳐 표현하는 것이다.

ANSI 표준 조인 (JOIN절을 이용한 명시적 조인)

JOIN절을 명시적으로 선언하여 질의문을 작성할 수 도 있다.

SELECT 컬럼이름1, 컬럼이름2, ㆍㆍㆍ
FROM 테이블명1
JOIN 테이블명2
ON 테이블명1.컬럼명 = 테이블명2.컬럼명;

아래와 같이 작성이 가능하다.

SELECT 컬럼이름1, 컬럼이름2, ㆍㆍㆍ
FROM 테이블명1, 테이블명2
WHERE 테이블명1.컬럼명 = 테이블명2.컬럼명;

 

2. 아우터 조인 (LEFT, RIGHT)

EQUI JOIN 문장들의 한 가지 제약점은 그것들이 조인을 생성하려 하는 두개의 테이블의 

두개 컬럼에서 공통된 값이 없다면 테이블로부터 데이터를 반환하지 못한다는 것이다.

- 정상적으로 저인 조건을 만족하지 못하는 행들을 보기위해 OUTER JOIN을 사용한다. 

OUTER JOIN 연산자는 (+)이다. 간단하게 말하여 데이터가 없을 수도 있는 쪽 JOIN 컬럼에 (+)를 추가하여 OUTER JOIN이 가능하다.

즉, 테이블1 RIGHT OUTER JOIN 테이블2 할 경우 테이블1,테이블2 간 조인 조건이 맞지 않는 테이블1과 테이블2의 레코드 중 테이블2 레코드는 무조건 결과값에 포함되어 나오는 것입니다. 오른쪽 테이블은 무조건 나오는 것이지요.

- ORACLE에서의 LEFT OUTER조인

SELECT 테이블1.아이디
FROM 테이블1, 테이블2
WHERE 테이블1.아이디 = 테이블2.아이디(+)

- ANSI 표준 쿼리의 LEFT OUTER JOIN

SELECT 테이블1.아이디
FROM 테이블1
LEFT OUTER JOIN 테이블2
ON 테이블1.아이디 = 테이블2.아이디

LEFT는 왼쪽테이블 기준, RIGHT는 오른쪽 테이블 기준이라고 생각하면 된다.

왼쪽 테이블의 조건은 ON 영역에

기준이 되는 테이블의 조건은 WHERE 영역에 정의한다.

반응형