
내부 조인 (INNER JOIN)
ANSI JOIN
select 컬럼명
from 메인테이블
INNER JOIN 조인테이블
on A.XXX = B.XXX (컬럼 조인 조건 쓰는 자리)
- 메인 테이블, 조인 테이블에 join 컬럼의 값이 동시에 존재해야 조회가 된다.
ORACLE JOIN
select 컬럼명
from 메인테이블 A, 조인테이블 B
where A.XXX = B.XXX
아우터 조인 (LEFT OUTER JOIN)
- 조인테이블의 값이 존재하지 않아도 메인테이블의 데이터가 조회된다.
- 메인테이블의 데이터는 무조건 조회되고, 조인테이블은 참조 용도로만 사용된다.
- 조인테이블의 값을 가져오지 못하면 null 로 표시
ANSI JOIN
select 컬럼명
from 메인테이블 A LEFT OUTER JOIN 조인테이블 B
on 컬럼 조인 조건
- 메인테이블의 데이터가 모두 조회되고, 조인테이블의 값을 참조하여 조인 되었을 경우 해당 값을 표시하고, 조인이 되지 않았을 경우 null 로 표시한다.
- INNER JOIN 처럼 조인되지 않았다고 해서 조회에서 제외하지 않는다.
OUTER JOIN
select 컬럼명
from 메인테이블 A, 조인테이블 B
where A.XXX = B.XXX(+)
- 조인 컬럼에 (+) 를 붙이면 해당 컬럼의 테이블이 조인 테이블이 된다.
아우터 조인 (RIGHT OUTER JOIN)
ANSI JOIN
select 컬럼명
from 조인테이블 A RIGHT OUTER JOIN 메인테이블 B
on A.XXX = B.XXX
- 오른쪽이 메인테이블이 된다.
- B 테이블의 모든 데이터가 조회되고, A 테이블은 참조 용도로만 사용된다.
- LEFT OUTER JOIN 이 가독성에 더 좋다.
ORACLE JOIN
select 컬럼명
from 메인테이블 B = 조인테이블 A
where B.XXX(+) = A.XXX
- 조인컬럼의 (+) 위치를 변경함으로써 RIGHT OUTER JOIN 과 비슷하게 만들 수 있다.