JOIN 이 왜 필요할까?
이제까지는 테이블 하나로만 쿼리를 작성했다.
하지만 현실에는 정보들이 여러 개의 테이블들로 나뉘어 있고,
이 여러 개의 테이블들 사이의 관계를 고려하여 연결할 수 있어야 한다.
1. 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 |
여기서 두 table로
SELECT * FROM Students, Class 의 쿼리를 입력하면
연결지을 수 있는 모든 가짓수를 만들어준다. 4 * 3 = 12가지
그런데 우리는 <Students> 테이블의 'userID'와 <Class> 테이블의 'ID'를 연결지어 하나의 테이블을 만들고 싶은거지,
그냥 모든 경우의 수를 아무렇게나 배합해 놓은걸 보고 싶은게 아니다!!!
이 때,
이렇게 첫번째 테이블에 INNER JOIN 한다.
뭐를? 두번째 테이블을.
어떻게? key를 연결해서 : ON 테이블1.key이름 = 테이블2.key이름
그럼 결과가 이렇게 나올 것이다.
결과 :
userID | 학과 | 학년 | ID | 과제제출 | 퀴즈결과 |
1 | 경영학과 | 2 | 1 | 제출 | 90 |
3 | 건축학과 | 4 | 3 | 미제출 | 80 |
4 | 식품영양학과 | 3 | 4 | 제출 | 75 |
이 외에도 3개, 4개, ... 여러 개의 테이블을 연결할 수 있는 공통 key만 있다면 계속 연결지어줄 수 있다.
'Study > SQL' 카테고리의 다른 글
SQL : Union & Union ALL (0) | 2023.07.20 |
---|---|
SQL : Join - LEFT/RIGHT/OUTER JOIN (0) | 2023.07.20 |
SQL : CASE로 pivot하기 (0) | 2023.07.19 |
SQL : Case (0) | 2023.07.14 |
SQL : Having (0) | 2023.07.14 |