INNER JOIN 말고
OUTER JOINs에는
LEFT JOIN, RIGHT JOIN, OUTER JOIN이 있다.
INNER JOIN은 두 테이블에 모두 있지 않은 정보는 결과로 출력되지 않았다.
OUTER JOINs에서는 unmatched된 행들도 결과로 출력될 수 있다.
2. LEFT JOIN
INNER JOIN에서처럼 두 개의 TABLE 이 있다고 생각해보자.
(1) : 교양 수업을 수강등록한 학생 목록 : 테이블 명 = Students
userID | 학과 | 학년 |
1 | 경영학과 | 2 |
2 | 응용통계학과 | 4 |
3 | 건축학과 | 4 |
4 | 식품영양학과 | 3 |
(2) : 7월 19일 과제제출 및 퀴즈 결과 : 테이블 명 = Class
ID | 과제제출 | 퀴즈결과 |
1 | 제출 | 90 |
3 | 미제출 | 80 |
4 | 제출 | 75 |
이와 같이 INNER JOIN을 이용했을 때에는
'Student' 테이블에 있는 userID 2번의 학생이 'Class' 테이블에는 없어서
결과에 id 1,3,4번 학생만 나타났다.
하지만 LEFT JOIN을 이용한다면
'Student' 테이블에는 있는데 'Class' 테이블에는 없는 id = 2번 학생 또한 결과로 나타날 것이다.
userID | 학과 | 학년 | ID | 과제제출 | 퀴즈결과 |
1 | 경영학과 | 2 | 1 | 제출 | 90 |
2 | 응용통계학과 | 4 | NULL | NULL | NULL |
3 | 건축학과 | 4 | 3 | 미제출 | 80 |
4 | 식품영양학과 | 3 | 4 | 제출 | 75 |
3. RIGHT JOIN
이번에는 LEFT JOIN과 반대로 RIGHT JOIN은
첫번째 테이블에는 없는데 두번째 테이블에 있는 데이터들이 모두 나오도록 결합하는 경우이다.
그런데 RIGHT JOIN은 거의 잘 쓰이지 않는다.
왜냐하면 그냥 LEFT JOIN으로 쓰고 A테이블이랑 B테이블 위치만 바꾸면 그게 그거라서..!
4. OUTER JOIN
이번에는 두 테이블의 합집합을 위해 쓰는 FULL OUTER JOIN이다.
'Study > SQL' 카테고리의 다른 글
SQL : Joins with Comparison Operators (0) | 2023.07.20 |
---|---|
SQL : Union & Union ALL (0) | 2023.07.20 |
SQL : JOIN - INNER JOIN (0) | 2023.07.19 |
SQL : CASE로 pivot하기 (0) | 2023.07.19 |
SQL : Case (0) | 2023.07.14 |