inner join은 교집합이라고 보면 된다. 또한 쿼리는 다음과 같은 방법들로 작성된다.
select * from A inner join B on A.번호 = B.번호;
select * from A,B where A.번호=B.번호;
INNER JOIN된 결과를 보면 A 테이블과 B테이블이 모두 가지고 있는 데이터만이 검색됨
OUTER JOIN은 FULL OUTER JOIN의 경우 빼고는 특정 테이블을 기준으로 데이터를 보여준다.
OUTER JOIN은 Full OUTER JOIN / LEFT OUTER JOIN / RIGHT 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.번호;
RIGHT OUTER JOIN은 오른쪽 테이블 기준으로 JOIN 하겠다는 것
FULL OUTER JOIN은 왼쪽 테이블과 오른쪽 테이블의 합집합을 얻는다. 만약 A에는 데이터가 있지만 B에 데이터가 없으면 B부분은 null이 되고 반대의 경우에는 A부분이 null이 된다.
참고 글