[Tip] INNER JOIN & OUTER JOIN의 차이
* 출처 : http://isstory83.tistory.com/57
INNER JOIN : simple join이라고도 하며, 둘 이상의 테이블에서 join condition을 만족하는 행만 반환한다.
즉, 둘 이상의 테이블에 전부 존재하는 데이터만 조회한다는 것이다. (물론 ON조건에 만족하는 데이터)
집합으로 표현하자면 교집합이라 이해하면 된다.
간단한 예는 http://isstory83.tistory.com/entry/조인Join-쿼리
OUTER JOIN : OUTER JOIN 에는 LEFT , RIGHT, FULL OUTER JOIN 등의 세가지 형식이 있다.
INNER JOIN과 는 달리 두 테이블에서 지정된 쪽의 (LEFT or RIGHT) 모든 결과를 모두 보여준 후 반대쪽에 매칭되는 값을 보여주고, 값이 없어도 NULL로 보여주는 JOIN이다.
JOIN 이전에 나오는 테이블이 왼쪽(LEFT)테이블이 되고, JOIN 이후에 나오는 테이블은 오른쪽(RIGHT)테이블이 된다.
OUTER JOIN의 종류 및 사용
LEFT OUTER JOIN – A라는 테이블과 B라는 테이블이 있다면 그 두 테이블 중 왼쪽 테이블을 기준을 세우는 JOIN
왼쪽 TABLE1을 기준으로 컬럼1과 컬럼6를 매칭하여 결과 값을 보여주되 컬럼6에 3이 매칭되는 값이 없기에 NULL을 보여준다.
RIGHT OUTER JOIN – A라는 테이블과 B라는 테이블이 있다면 그 두 테이블 중 오른쪽 테이블을 기준을 세우는 JOIN
테이블2의 컬럼6의 값 4에 해당하는 컬럼1이 없으므로 해당 데이터를 NULL로 보여준다.
FULL OUTER JOIN – 간단하게 LEFT와 RIGHT OUTER JOIN의 합이라고 생각하면 된다.
참고적으로, 같은 두 개의 테이블을 INNER JOIN하면 아래와 같은 결과를 보여준다.
위의 FULL OUTER JOIN에서 양쪽에 NULL이 들어간 데이터들이 사라진 것을 확인 할 수 있다.
'프로그래밍 > DB' 카테고리의 다른 글
SQL의 JOIN에서 ON과 WHERE의 차이점 (0) | 2016.09.23 |
---|---|
절차형 SQL (0) | 2016.09.23 |
풀스캔을 방지 (0) | 2016.09.23 |