이번 포스팅에서는 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 |