업무시간에 처음 본 LEFT OUTER OIN 이 있어 공부를 위해 작성한다.
회원정보를 'member' 테이블에 리뷰정보가 'review' 테이블에 있을때
하나로 연결해서 만들기 위해서는 JOIN(조인)이라는 것을 사용해서 두 테이블을 가로 방향으로 이어 붙이는 작업을 한다.
근데 오늘 포스팅한 JOIN은 실무에서 활용도가 높다고 하는
LEFT OUTER JOIN 과 RIGHT OUTER JOIN에 대해 알아보자 !
📝 LEFT OUTER JOIN
먼저, LEFT OUTER JOIN에 대해서 알아보자 !

위에 처럼 ITEM 테이블(상품이름/상품가격 /상품설명)과 각 상품의 재
고 수 정보를 담은 STOCK 테이블이 있다.
만약 각 상품의 정보와 재고 수를 한번에 보고 싶다면 아래와 같이 SQL 문을 작성해주면 된다.
SELECT
ITEM.ID,
ITEM.NAME,
STOCK.ITEM_ID,
STOCK.INVENTORY_COUNT
FORM ITEM LEFT OUTER JOIN STOCK
ON ITEM.ID = STOCK.ITEM_ID
FROM절을 자세히 보면 ITEM 테이블 STOCK테이블 사이에 LEFT OUTER JOIN 이 있다.
이 뜻은 ITEM 테이블 기준으로 STOCK 테이블을 왼쪽 기준으로 이어붙이겠다라는 뜻이다.
ON절에 FROM절의 내용대로 두 테이블을 이어붙일때 ITEM 테이블 ID와 STOCK 테이블의 ITEM_ID컬럼 값이 같은 행을 이어 붙이라는 소리다 !
즉 아래와 같이 결과가 나올 것이다.

이렇게 하게되면 이름을 왼쪽에서 써준 테이블이 기준이 되고
on절에 써있는 것이 또 다른 기준이 되서 테이블 row를 이어 붙여 준다 !
📝 RIGHT OUTER JOIN
그럼 RIGHT OUTER 은 오른쪽에 써준 테이블이라는 점만 다를 것 이다.
그럼 아까 위에서 봤던 SQL 쿼리문을 LEFT아닌 RIGHT 바꾸게 된다면, 어떻게 될까?
SELECT
ITEM.ID,
ITEM.NAME,
STOCK.ITEM_ID,
STOCK.INVENTORY_COUNT
FORM ITEM RIGHT OUTER JOIN STOCK
ON ITEM.ID = STOCK.ITEM_ID
이렇게 하면 STOCK 테이블이 기준이 된다.
또한 STOCK 테이블에 ITEM_ID를 기준으로 그것과 같은 값을 ROW가 이어 붙여진다.

그 결과 테이블에 SELECT절에 작성한 ID, NAME. ITEM_ID,INVENTORY_COUNT 컬럼만 조회가 되며
STOCK기준으로 작성했기 때문에 재고 수가 있는 것들만 남겨졌다.
실무에서 자주 쓴다고 해서 작성해본 LEFT OUTER JOIN / RIGHT OUTER JOIN 을 공부했다.
언젠가 하나하나 작성하다보니 알게되는 날이 있겠지 😎
도움 받은 사이트
https://www.theteams.kr/teams/8573/post/73291
'업무' 카테고리의 다른 글
[업무] TIL 6회차 - 업무 리뷰 (Oracle / CASE 문 - CASE WHEN 해석 및 사용법) (0) | 2024.03.20 |
---|---|
[업무] TIL 5회차 - 업무 리뷰 (JS / JSP 에 값 넘겨받기) (0) | 2024.02.28 |
[업무] TIL 4회차 - 업무 리뷰 (스냅샷/테이블_IF/ 잡(JOB)/패키지(프로시저,함수) (1) | 2024.02.16 |
[업무] TIL 2회차 - Batch란 ? (Scheduler 비교) (0) | 2024.02.06 |
[업무] TIL 1회차 - 용어 정리 (0) | 2024.02.06 |
업무시간에 처음 본 LEFT OUTER OIN 이 있어 공부를 위해 작성한다.
회원정보를 'member' 테이블에 리뷰정보가 'review' 테이블에 있을때
하나로 연결해서 만들기 위해서는 JOIN(조인)이라는 것을 사용해서 두 테이블을 가로 방향으로 이어 붙이는 작업을 한다.
근데 오늘 포스팅한 JOIN은 실무에서 활용도가 높다고 하는
LEFT OUTER JOIN 과 RIGHT OUTER JOIN에 대해 알아보자 !
📝 LEFT OUTER JOIN
먼저, LEFT OUTER JOIN에 대해서 알아보자 !

위에 처럼 ITEM 테이블(상품이름/상품가격 /상품설명)과 각 상품의 재
고 수 정보를 담은 STOCK 테이블이 있다.
만약 각 상품의 정보와 재고 수를 한번에 보고 싶다면 아래와 같이 SQL 문을 작성해주면 된다.
SELECT
ITEM.ID,
ITEM.NAME,
STOCK.ITEM_ID,
STOCK.INVENTORY_COUNT
FORM ITEM LEFT OUTER JOIN STOCK
ON ITEM.ID = STOCK.ITEM_ID
FROM절을 자세히 보면 ITEM 테이블 STOCK테이블 사이에 LEFT OUTER JOIN 이 있다.
이 뜻은 ITEM 테이블 기준으로 STOCK 테이블을 왼쪽 기준으로 이어붙이겠다라는 뜻이다.
ON절에 FROM절의 내용대로 두 테이블을 이어붙일때 ITEM 테이블 ID와 STOCK 테이블의 ITEM_ID컬럼 값이 같은 행을 이어 붙이라는 소리다 !
즉 아래와 같이 결과가 나올 것이다.

이렇게 하게되면 이름을 왼쪽에서 써준 테이블이 기준이 되고
on절에 써있는 것이 또 다른 기준이 되서 테이블 row를 이어 붙여 준다 !
📝 RIGHT OUTER JOIN
그럼 RIGHT OUTER 은 오른쪽에 써준 테이블이라는 점만 다를 것 이다.
그럼 아까 위에서 봤던 SQL 쿼리문을 LEFT아닌 RIGHT 바꾸게 된다면, 어떻게 될까?
SELECT
ITEM.ID,
ITEM.NAME,
STOCK.ITEM_ID,
STOCK.INVENTORY_COUNT
FORM ITEM RIGHT OUTER JOIN STOCK
ON ITEM.ID = STOCK.ITEM_ID
이렇게 하면 STOCK 테이블이 기준이 된다.
또한 STOCK 테이블에 ITEM_ID를 기준으로 그것과 같은 값을 ROW가 이어 붙여진다.

그 결과 테이블에 SELECT절에 작성한 ID, NAME. ITEM_ID,INVENTORY_COUNT 컬럼만 조회가 되며
STOCK기준으로 작성했기 때문에 재고 수가 있는 것들만 남겨졌다.
실무에서 자주 쓴다고 해서 작성해본 LEFT OUTER JOIN / RIGHT OUTER JOIN 을 공부했다.
언젠가 하나하나 작성하다보니 알게되는 날이 있겠지 😎
도움 받은 사이트
https://www.theteams.kr/teams/8573/post/73291
'업무' 카테고리의 다른 글
[업무] TIL 6회차 - 업무 리뷰 (Oracle / CASE 문 - CASE WHEN 해석 및 사용법) (0) | 2024.03.20 |
---|---|
[업무] TIL 5회차 - 업무 리뷰 (JS / JSP 에 값 넘겨받기) (0) | 2024.02.28 |
[업무] TIL 4회차 - 업무 리뷰 (스냅샷/테이블_IF/ 잡(JOB)/패키지(프로시저,함수) (1) | 2024.02.16 |
[업무] TIL 2회차 - Batch란 ? (Scheduler 비교) (0) | 2024.02.06 |
[업무] TIL 1회차 - 용어 정리 (0) | 2024.02.06 |