우선 OUTER JOIN이란,
INNER JOIN이 JOIN 조건에 부합하는 행만 JOIN이 발생하는 거라면,
OUTER JOIN은 조건에 부합하지 않는 행까지도 포함시켜 결합하는 것을 의미한다.
LEFT OUTER JOIN이란?
OUTER JOIN의 일종이므로 JOIN 조건에 부합하지 않는 행까지 반환시키되,
왼쪽에 있는 테이블의 모든 행을 포함시키는 것을 의미한다.
예를 들어 아래의 쿼리를 보면
두개의 테이블을 JOIN 하고 있다,
usertable 과 buytable이다.
left outer join은 왼쪽 테이블의 행은 조건에 부합하지 않더라도 모두 출력되어야 한다는 의미이다.
즉, from 첫번째 테이블 left outer join 두번재 테이블이라면, 첫번째 테이블의 것은 모두 출력 되어야 한다.
SELECT u.id, name, goodname, addr FROM usertable u LEFT OUTER JOIN buytable b ON u.id = b.id ORDER BY u.id; |
Inner join 시 inner 키워드를 생략 가능했던 것처럼
left outer join 역시 left join 만으로 작성해도 무방하다.
위 예제의 결과는 아래와 같다. (모든 usertable의 행이 출력되었다.)