일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 문과 코딩독학
- join
- SQL혼자서
- SQL자격증
- SQL D 자격증
- sql독학
- sql함수
- DEBEAVER
- 마케터SQL
- 코딩독학
- 조인
- 문과SQL
- 마케팅코딩
- SQL D 독학
- SQL독학으로 자격증
- SQL D자격증
- SQL 분석함수
- DBeaver
- outer join
- 문과코딩
- SQL D
- SQL문과생
- MySQL
- PostgreSQL
- inner join
- group by
- SQL COUNT함수
- ROLLUP함수
- SQL
- 마케터코딩
- Today
- Total
문과생의 우당탕탕 공부 기록
03. OUTER JOIN) BASKET테이블로 LEFT,RIGHT JOIN 이해하기 본문
*본 내용은 앞의 JOIN 내용을 시작으로 계속 연결되는 테이블을 사용합니다.
OUTER JOIN은 말 그대로
OUTER = 외부의
JOIN = 조인이라는 뜻이다.
흔히 말해서 집합적으로 조인되는 기준으로
LEFT (OUTER) JOIN이면 앞서 언급된 집합 기준으로 교집합까지 포함하여 결과값이 나오고
RIGHT (OUTER) JOIN이면 뒤에 나오는 집합 기준으로 교집합까지 결과값이 나온다.
FULL (OUTER) JOIN은 전체 합집합이라고 생각하면 쉽다
저번시간에 만든 테이블을 잠깐 가져오자면
BASKET_A와 BASKET_B라는 테이블을 만들고
각각의 PRIMARY KEY를 FRUIT으로, 가변의 문자열을 (VARCHAR) 100byte로 지정한다.
그리고 null이아니게!!
VARCHAR = 가변의 문자열 타입으로 100byte까지 넣을 수 있다는 뜻이다
* VARCHAR와 CHAR의 차이점은 다른 게시글로 한번 정리해보겠다
그 다음 BASKET_A와 B에 각각 과일의 종류를 넣어주는 INSERT문을 작성한다.
각각의 테이블에 이런 값들이 들어갔다!
본격적인 OUTER JOIN 시작하기
위에 BASKET_A와 BASKET_B는 각각 과일목록들을 가지고있다.
이것을
1. LEFT JOIN을 시행하면
BASKET_A에 들어있는 4가지 항목은 전부 그대로 나오고
오른쪽에 BASKET_B에 들어있는 항목 중에 A와 INNER JOIN되는 애들은 나오고, 아닌 애들은 결과값으로 안나온다.
그러면 여기서 NULL값인거만 뽑으면 어떻게 될까?
자 위에거랑 똑같이 뽑는데, NULL인거를 뽑는다고 WHERE 조건문으로 걸어줬다.
쉽게 말해서 INNER JOIN되는거를 제외하고 A에서 나머지 것들을 뽑은것이다.
LEFT JOIN하고-> 거기서 B.ID가 NULL(없는거)인 것을 뽑으니까 ,
INNER로 연결되어있던 1APPLE과 2ORANGE는 빠지고,
JOIN안되어있는 3BANANA와 4CUCUMBER가 결과값으로 나온 것임!
한번 더 정리하자면, 순수A만 뽑고싶으면 SQL문을 작성할 때
FROM A로 잡고
LEFT JOIN으로 B를 엮어주고 (=A가 왼쪽에 위치, A(순수A+INNER JOIN이있는 A를 가져오게됨))
FRUIT 조건을 건 다음에(INNER JOIN이 되는것) WHERE로 B조건을 걸어서 빼내주면
순수 A만 남는 것이다!
(말이 더 어렵게 됐는데 -_-;;무튼)
RIGHT JOIN도 똑같다!
이렇게 RIGHT JOIN도 똑같이 된다
대신 A가 이제 NULL값이 생김. 당연함 WHY냐면 B가 오른쪽에 위치해 있으니까 오른쪽인 B만 나온다
근데 이제 여기서 순수B만 보고싶으면
A에 대한 기준으로 NULL인거를 뽑으면 = b와 겹치지않는 것(=null 이니까)
순수 b만 나오는 것임!!!
'SQL 공부 > 조인과 집계 데이터' 카테고리의 다른 글
06. CROSS JOIN) CATESIAN PRODUCT연산과 크로스조인 (0) | 2023.01.14 |
---|---|
05. FULL OUTER 조인) 풀 아우터조인으로 RIGHT ONLY만 하는법 (0) | 2023.01.13 |
04. SELF 조인) EMPLOYEE테이블로 SELF JOIN이해하기, ||연산자 (0) | 2023.01.12 |
02. INNER JOIN) BASKET테이블로 이너조인 이해하기 (0) | 2023.01.09 |
01. 조인이란) TABLE제작과 조인의 개념 (0) | 2023.01.07 |