INNER JOIN OUTER JOIN 차이

춘식이 개발로그·2022년 3월 29일
1
post-custom-banner

INNER JOIN

inner join은 교집합이라고 보면 된다. 또한 쿼리는 다음과 같은 방법들로 작성된다.

select * from A inner join B on A.번호 = B.번호;

select * from A,B where A.번호=B.번호;

INNER JOIN된 결과를 보면 A 테이블과 B테이블이 모두 가지고 있는 데이터만이 검색됨

OUTER JOIN

OUTER JOIN은 FULL OUTER JOIN의 경우 빼고는 특정 테이블을 기준으로 데이터를 보여준다.
OUTER JOIN은 Full OUTER JOIN / LEFT OUTER JOIN / RIGHT OUTER JOIN 크게 세가지 종류로 나누어 진다.

먼저

  1. LEFT OUTER JOIN

Left Outer Join 왼쪽 테이블 기준으로 JOIN 하겠다는 것
왼쪽 테이블 A의 모든 데이터와 A와 B 테이블의 중복데이터들이 검색됨

쿼리는 아래와 같은 방식으로 작성

select * from A LEFT OUTER JOIN B ON (A.번호 = B.번호)

select * from A, B Where A.번호(+) = B.번호;

  1. RIGHT OUTER JOIN

RIGHT OUTER JOIN은 오른쪽 테이블 기준으로 JOIN 하겠다는 것

  1. FULL OUTER JOIN

FULL OUTER JOIN은 왼쪽 테이블과 오른쪽 테이블의 합집합을 얻는다. 만약 A에는 데이터가 있지만 B에 데이터가 없으면 B부분은 null이 되고 반대의 경우에는 A부분이 null이 된다.

요약.

  • INNER JOIN은 위에 설명 했듯이 교집합이라는 개념으로 생각하면 이해하기 편할듯.
  • OUTER JOIN은 INNER JOIN에서 일치하지 않는 레코드는 모두 버렸지만 OUTER JOIN에서는 일치하지 않더라도 버리지 않고 NULL로 채워서 결과를 응답한다.

참고 글

post-custom-banner

0개의 댓글