brunch

You can make anything
by writing

C.S.Lewis

by 김선우 Oct 10. 2016

Outer Join

기준 테이블이 왼쪽에 있는가 오른쪽에 있는가에 따라서  

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 절에 무엇을 넣느냐에 따라 결과가 달라진다.


수정중.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari