노빠꾸 데이터베이스/SQL

[SQL JOIN] INNER JOIN, OUTER JOIN 차이 정리(LEFT JOIN, RIGHT JOIN)

No Backing 2021. 11. 15. 23:34
반응형

이번 포스팅에서는 JOIN에 대해서 정리해 볼텐데 그 중 INNER JOIN 과 LEFT JOIN에 관해서 알아보겠습니다.

 

INNER JOIN 

INNER JOIN은 간단히 설명하면 교집합이라고 생각하면 쉽다.

A, B 테이블이 있다고 가정할때, 둘다 만족하는 값이 있을경우만 조회가 된다.

 

INNER JOIN에서 INNER는 생략이 가능하다.

- INNER JOIN = JOIN

 

EX) 상품테이블, 옵션테이블 INNER JOIN

 

- 상품테이블(T_GOODS)

GOODS_NO GOODS_NAME
1 우유
2 쥬스
3 과자
4

 

- 옵션테이블(T_GOODS_OPTION)

GOODS_NO OPTION
1 딸기맛 우유
2 포도맛 쥬스

 

1
2
SELECT TG.GOODS_NAME, TGO.OPTION
FROM T_GOODS TG (INNER) JOIN T_GOODS_OPTION TGO ON TG.GOODS_NO = TGO.GOODS_NO
cs

위와 같이 상품테이블과 옵션테이블을 INNER JOIN을 이용하여 조회하면 서로 일치하는 값만 조회되게 된다.

즉, 각각 옵션이 존재하는 우유와 쥬스만 조회되게 된다.

 

- INNER JOIN 결과

GOODS_NAME OPTION
우유 딸기맛 우유
쥬스 포도맛 쥬스

 

OUTER JOIN

OUTER JOIN은 기준테이블에서 JOIN 대상 테이블에 일치하는 값이 없을 경우 null로 조회하여 노출된다.

즉, 기준이 되는 테이블의 값들은 모두 노출되며, JOIN대상 테이블의 값이 있을 경우 값이 노출되고 없으면 Null값이 노출된다.

 

OUTER JOIN에서 OUTER는 생략이 가능하다.

- LEFT OUTER JOIN = LEFT JOIN

- RIGHT OUTER JOIN = RIGHT JOIN

 

EX) 상품테이블, 옵션테이블 OUTER JOIN

 

- 상품테이블(T_GOODS)

GOODS_NO GOODS_NAME
1 우유
2 쥬스
3 과자
4

 

- 옵션테이블(T_GOODS_OPTION)

GOODS_NO OPTION
1 딸기맛 우유
2 포도맛 쥬스

 

1
2
SELECT TG.GOODS_NAME, TGO.OPTION
FROM T_GOODS TG LEFT (OUTER) JOIN T_GOODS_OPTION TGO ON TG.GOODS_NO = TGO.GOODS_NO
cs

 

OUTER JOIN에서 OUTER는 생략이 가능 하다.

위와 같이 OUTER JOIN을 이용하면, 기준 테이블에 값은 모두 노출되며, 대응되는 값이 있을 경우는 해당값, 없을경우는 null값이 노출된다.

 

- OUTER JOIN 결과

우유 딸기맛 우유
쥬스 포도맛 쥬스
과자 null
null

 

반응형