Global It Leader!!



 
 

Mysql OUTER JOIN에 대한 설명

페이지 정보

작성자 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 4,127회 작성일 16-11-02 19:23

본문

1. OUTER JOIN

INNER JOIN이 JOIN 조건에 부합하는 행만 JOIN이 발생하는 것이라면, 
OUTER JOIN조건에 부합하지 않는 행까지도 포함시켜 결합하는 것을 의미한다.

자주는 아니지만, 가끔 유용하게 사용될 수 있으므로 꼭 알아둘 필요는 있다.

기본 구문은 아래와 같다.

  1. SELECT <열 목록>
  2. FROM <첫번째 테이블 (LEFT 테이블)>
  3.     <LEFT | RIGHT | FULL> OUTER JOIN <두번째 테이블 (RIGHT 테이블)>
  4.                           ON <조인될 조건>
  5. [WHERE 검색 조건]

INNER JOIN과 유사해 보이지만, LEFT, RIGHT, FULL의 새로운 키워드들이 보인다.


2. LEFT OUTER JOIN

LEFT OUTER JOIN왼쪽 테이블의 것은 조건에 부합하지 않더라도 모두 결합되어야 한다는 의미이다.

즉, FROM 첫번째 테이블 LEFT OUTER JOIN 두번째 테이블이라면, 첫번째 테이블의 것은 모두 출력되어야 한다.
예제를 살펴 보자.

  1. -- 전체 회원의 구매기록을 살펴보자.
  2. -- 단, 구매 기록이 없는 회원도 출력되어야 한다.
  3.  
  4. -- LEFT OUTER JOIN이므로, UserTable은 모두 출력된다
  5.  
  6. SELECT U.ID, Name, GoodName, Addr
  7. FROM UserTable U                    -- LEFT Table    
  8.         LEFT OUTER JOIN BuyTable B  -- RIGHT Table
  9.         ON U.ID = B.ID
  10. ORDER BY U.ID

INNER JOIN시 INNER 키워드를 생략 가능했던 것처럼,
LEFT OUTER JOIN 역시 LEFT JOIN만으로 작성해도 무방하다.

위 예제의 결과는 아래와 같다. (모든 UserTable의 행이 출력되었다)

d0014632_5117ea8687b57.png


3. RIGHT OUTER JOIN

RIGHT OUTER JOIN오른쪽 테이블의 것은 조건에 부합하지 않더라도 모두 결합되어야 한다는 의미이다.

즉, FROM 첫번째 테이블 RIGHT OUTER JOIN 두번째 테이블이라면, 두번째 테이블의 것은 모두 출력되어야 한다.
LEFT OUTER JOIN의 예제와 동일한 결과를 얻을 수 있도록 예제를 작성해 보자.

  1. -- 전체 회원의 구매기록을 살펴보자.
  2. -- 단, 구매 기록이 없는 회원도 출력되어야 한다.
  3.  
  4. -- RIGHT OUTER JOIN이므로, UserTable은 모두 출력된다
  5.  
  6. SELECT U.ID, Name, GoodName, Addr
  7. FROM BuyTable B                       -- LEFT Table    
  8.         RIGHT OUTER JOIN UserTable U  -- RIGHT Table
  9.         ON B.ID = U.ID
  10. ORDER BY U.ID

역시 RIGHT OUTER JOIN은 RIGHT JOIN만으로도 작성이 가능하다.


4. FULL OUTER JOIN

전체 조인 또는 전체 외부 조인이라고 한다.
FULL OUTER JOIN은 LEFT OUTER JOIN과 RIGHT OUTER JOIN을 합친 것이라고 생각하면 된다.

즉, 한쪽을 기준으로 조건과 일치하지 않는 것을 출력하는 것이 아니라,
양쪽 모두에 조건이 일치하지 않는 것들까지 모두 결합하는 개념이다.

따라서, 테이블들의 모든 행이 조건에 관계없이 결합된다.

댓글목록

등록된 댓글이 없습니다.

전체 440
게시물 검색
컴퓨터언어 목록
번호 제목 글쓴이 조회 날짜
380 모바일 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5155 03-30
379 모바일 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3617 03-25
378 PHP no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 7267 03-19
377 모바일 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3668 03-18
376 모바일 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3942 03-18
375 모바일 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4206 03-18
374 CSS no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4144 03-02
373 CSS no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3967 03-02
372 Javasript no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3776 02-23
371 HTML no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4075 01-16
370 정규표현식 no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3659 01-03
369 Javasript no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3959 12-27
368 Javasript no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4298 12-21
367 HTML no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3884 12-11
366 CSS no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4086 11-10
열람중 Mysql no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4128 11-02
364 Mysql no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5764 11-02
363 CSS no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4013 10-26
362 HTML no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5128 10-26
361 CSS no_profile 오원장 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 8462 10-26