본문 바로가기
IT

Inner Join, Outer Join

by 결국 그렇고 그런이야기 2021. 10. 17.
반응형

사실 실무에서는 그러니깐 회사에서는 대부분 Inner Join만을 사용할 것 같은데

이런게 있다는걸 아는것과 모르는건 또 다른것이니깐.

Inner Join과 outer join을 구분하면 아래 그림으로 딱 설명이 된다.

 

Inner Join은 교집합

Outer Join은 합집합이라고 생각하면 되는데 또 종륲가 세가지로 나누어진다.

전체 합 집합은 Full outer join

왼쪽, 오른쪽 합집합이 조금씩 다르다.

사실 이런 데이터가 필요한 경우가... 생각보다 많지는 않았던 것 같다.

 

보통은 둘다 만족하는 조건의 데이터를 가져오지.

아니면 View를 만들어서 원하는 값을 다시 기존 테이블 들과 조인해서 쓴다던가.

 

암튼. 

이론적인 것이니깐

오늘은 Inner Join, Outer Join 공부해보려고 한다.

아래 내용은 코드순례자 블로그 내용을 가져와 보았다.

너무 쉽고 잘 설명해 놓았기에.

 

데이터로 예를 들면 이러하다.

A 테이블에 1 2 3 4 값들이 있고

B 테이블에      3 4 5 6 값들이 있다면

 

A,B Table Inner Join 값은 3 4

아 그리고 보통은 일반적인 조인을 이용하고 inner join은 레거시 옛 소스에 많은 편이었는데

문법적으로는 대략 이러한 차이가 있다.

아래 내용은 김정식 Oracle SQL 강좌 블로그에서 가져옴

 

 

 

Outer Join 방식은 3가지가 있기에 조금씩 또 다르다.

필자가 이해를 편하게 하기 위해서는 정렬의 기준이 왼쪽에 있느냐 오른쪽이냐로 생각했는데.

 

Left outer join

 

Right outer join

 

Full outer join


Outer Join

조금 더 복잡한 데이터로 살펴보면 아래와 같다.

 

 

근데... nature join은 또 머지 싶을 것이다.

일반적인 = (Equi join)과 유사해서 거의 사용을 안하고 있는데

문법적인 차이는 아래와 같다.

역시 김정식 Oracle SQL 강좌 블로그에서 퍼옴.

  • Equi Join과 동일 하다고 보면 된다.
  • 두 테이블의 동일한 이름을 가지는 칼럼은 모두 조인이 된다.
  • 동일한 컬럼을 내부적으로 찾게 되므로 테이블 Alias를 주면 오류가 발생 한다.
  • 동일한 컬럼이 두개 이상일 경우 JOIN~USING 문장으로 조인되는 컬럼을 제어 할 수 있다.

 

 

반응형

댓글