정보 처리/데이터베이스

조인 - OUTER JOIN(외부조인)

본클라쓰 2008. 12. 16. 17:00

 

INNER JOIN의 경우는 양쪽 테이블에 모두 내용이 있는 것만 조인되는 방식이고, OUTER JOIN은 INNER JOIN과 마찬가지로 양쪽에 내용이 있으면 당연히 조인되고 한쪽에만 내용이 있어도 그 결과가 표시되는 조인 방식이다.

 

만약, 처음 테이블에 3건의 데이터가 있고, 다음 테이블에 5건에 데이터가 있는데 조인 조건이 처음 테이블의 2건과 다음 테이블에 4건과 일치하면 INNER JOIN인 경우 4건을 출력하지만, OUTER JOIN인 경우 4건과 처음 테이블과 일치하지 않는 1건도 출력되 5건이 출력된다.

 

즉, OUTER JOIN은 조인의 조건에 만족되지 않는 행까지도 포함시킨다. 사실 현실적으로 자주 사용되지는 않지만 종종 유용하게 사용되는 방식이므로 꼭 알아둘 필요가 있다.

 

SELECT 컬럼(S)
FROM 처음테이블

<LEFT | RIGHT | FULL> OUTER JOIN 두번째테이블

ON 조인될조건

 

만약, USER 테이블의 모든 값은 출력되어야 하고, BUY 테이블에서는 일치하는 내용만 출력하고자 한다면

 

SELECT *
FROM user

LIFT OUTER JOIN buy on user.userid = buy.userid;

 

위 경우에는 구매를 하지않은 사람의 목록도 다 출력이 된다. 물론 구매 기록이 없다면 해당 필드는 null로 표시된다.

 

여기서 옵션인 LIFT는 왼쪽 테이블의 값은 모두 출력되어야 한다는 것이고, RIGHT는 오른쪽 테이블의 값이 모두 출력되어야 한다는 뜻이다. FULL은 양 쪽 모두 출력되어야 한다는 뜻이지만 거의 사용되지 않는다.

 

'정보 처리 > 데이터베이스' 카테고리의 다른 글

기타 - 뷰(View)란  (0) 2008.12.17
기타 - 트리거(Trigger)란  (0) 2008.12.17
조인 - INNER JOIN(내부조인/이너조인)  (0) 2008.12.16
조작문 - LIKE 연산자  (0) 2008.12.13
조작문 - 데이터의 삭제  (0) 2008.12.13