2009년 06월 24일
[ DB ] 테이블 조인 간략 정리
형태) table1 t1 LEFT OUTER JOIN table2 t2 ON t1.PKcolumn = t2.PKcolumn
= INNER JOIN / OUTER JOIN
INNER JOIN은 교집합이다. 즉, 참조키가 일치하는 레코드만을 가져온다.(일치하지 않는 레코드는 제외된다.)
OUTER JOIN은 합집합이다. 참조키가 일치하는 레코드가 없어도 레코드를 가져온다.(일치하지 않아 데이터를 가져올 수 없는 경우에는 null이 된다.)
= LEFT / RIGHT / FULL
LEFT는 왼쪽 테이블의 레코드들을 기준으로 잡는다. 즉, JOIN을 해도 왼쪽 테이블에 없는 레코드는 절대 나오지 않는다.(OUTER JOIN을 하더라도, 오른쪽 테이블에 데이터가 있어도 왼쪽 테이블에 없는 레코드는 나오지 않는다.)
RIGHT는 오른쪽 테이블의 레코드들을 기준으로 잡는다. LEFT와 마찬가지로 오른쪽 테이블에 없는 데이터나 레코드는 나오지 않는다.
FULL은 왼쪽 오른쪽 모두에 있는 레코드를 가져온다.
* 어디까지나 간략 정리, 게다가 오라클 기준이므로 다른 DB는 다를 수 있음
= INNER JOIN / OUTER JOIN
INNER JOIN은 교집합이다. 즉, 참조키가 일치하는 레코드만을 가져온다.(일치하지 않는 레코드는 제외된다.)
OUTER JOIN은 합집합이다. 참조키가 일치하는 레코드가 없어도 레코드를 가져온다.(일치하지 않아 데이터를 가져올 수 없는 경우에는 null이 된다.)
= LEFT / RIGHT / FULL
LEFT는 왼쪽 테이블의 레코드들을 기준으로 잡는다. 즉, JOIN을 해도 왼쪽 테이블에 없는 레코드는 절대 나오지 않는다.(OUTER JOIN을 하더라도, 오른쪽 테이블에 데이터가 있어도 왼쪽 테이블에 없는 레코드는 나오지 않는다.)
RIGHT는 오른쪽 테이블의 레코드들을 기준으로 잡는다. LEFT와 마찬가지로 오른쪽 테이블에 없는 데이터나 레코드는 나오지 않는다.
FULL은 왼쪽 오른쪽 모두에 있는 레코드를 가져온다.
* 어디까지나 간략 정리, 게다가 오라클 기준이므로 다른 DB는 다를 수 있음
# by | 2009/06/24 10:29 | ▷ 프로그래밍 관련 | 트랙백 | 덧글(2)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]