기준 테이블이 왼쪽에 있는가 오른쪽에 있는가에 따라서
LEFT JOIN , RIGHT JOIN 이 된다. (FULL JOIN 은 제외)
조인된 테이블을 기준으로 없는 데이터는 NULL 로 찍힌다.
Inner Join 이 교집합이라면, Outer Join 은 합집합이다.
- LEFT JOIN 형식 (RIGHT JOIN 은 반대)
SELECT *
FROM 기준 테이블 A LEFT JOIN 비교하고자하는 테이블 B ON A.no = B.no AND A.조건
WHERE ...
아래는 설명이 잘되어있는 예시다.
출처 - http://egloos.zum.com/cubenuri/v/1834565
- LEFT JOIN 의 결과
SELECT T1.이름,T1.나이, T2.취미
FROM T1 LEFT OUTER JOIN T2 ON T1.이름=T2.이름
비교 테이블인 Table 2에 민수와 지현이 없다. 그래서 민수와 지현의 취미는 null 값이 들어간다.
- RIGHT JOIN 의 결과
SELECT T1.이름,T1.나이, T2.취미
FROM T1 RIGHT OUTER JOIN T2 ON T1.이름=T2.이름
LEFT JOIN 과 반대로 기준 테이블인 Table 2 에는 철수와 영희밖에 없기에 위와 같이 결과가 나온다.
만약 Table 2 에 '홍길동', '독서'의 데이터가 있다면 아래와 같은 결과가 나온다.
Table 1에는 홍길동이 없기에 이름과 나이에 null 이 들어간다.
**위의 결과는 Select 절에 무엇을 넣느냐에 따라 결과가 달라진다.
수정중.