FROM → ON → JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY
SQL 동작 순서를 명시
알아두고 항시 습관화하기
이어서 진행해보자
- 한 주의 시작부터 파이썬 세션도 같이 진행되고 정신이 없지만 정신차리고 해보자
- JOIN 에 대한 예제를 코딩테스트 사이트에서 많이 풀어보자
Remind
'UNION' : 수직 결합 / 'JOIN' : 수평 결합 임을 떠올리며 학습해보자.

여러 테이블을 수평 으로 결합 할 때 사용하는 기능이다.
기본적인 구조는 다음과 같다.---- JOIN 기본 구문 select 컬럼1, 컬럼2. from 테이블 a join -- 필요에 따라 사용하는 JOIN의 종류가 다양하다. 다음 주에 학습할 예정 ~ select 컬럼1, 컬럼2.. from 테이블 b on a.공통컬럼=b.공통컬럼---- JOIN 기본 구문 ------ 공통 컬럼이 2개 이상인 경우 select 컬럼1, 컬럼2 from 테이블 as a join -- 필요에 따라 사용하는 JOIN의 종류가 다양하다. 다음 주에 학습할 예정 ~ select 컬럼1, 컬럼2.. from 테이블 as b on a.공통컬럼=b.공통컬럼 and a.공통컬럼2=b.공통컬럼2JOIN 의 종류는 다음 주에 학습 할 예정이다.
그렇다면 필수 조건 (주의사항) 은 무엇일까?① JOIN 하고자 하는 테이블들의 공통 컬럼을 찾는다.
② 공통 컬럼의 관계(PK, FK) 를 찾는다.
③ 출력하고자 하는 결과 값에 따른 적절한 JOIN 방식을 찾는다.
② 공통 컬럼의 **관계(PK, FK)**을 찾는다.
- PK, FK 가 무엇인지 먼저 알아보자
구분 설명 PK기본 키, Null 일 수 없고 유일한 값을 갖는다 'FK' 외래 키, PK와 JOIN 하기 위한 연결컬럼의 역할
- 표에 나온 설명과 같이 JOIN을 하기 위해서는,
하나의 테이블의 PK와, 연결해주려는 테이블의 FK 를 찾아주어야 한다.
PK의 특징(NULL 값 존재 X, 모든 행의 값이 유일한 값)을 기억해두자
③ 적절한 JOIN 방식을 찾자
위 도식과 같이, JOIN의 종류는 다양하다.
JOIN에 대해 전반적인 이해를 바탕으로 필요에 따른 JOIN 방식을 사용하여야한다.
실무에서 자주 사용하는 JOIN 방식에 대해 알아보자
: 두 테이블에서 일치하는 값을 가진 행을 출력 (교집합)
---- INNER JOIN 기본 구문
select 컬럼1, 컬럼2...
from 테이블명1
inner join 테이블명2
on a.공통컬럼=b.공통컬럼
: 기준 테이블(A)의 모든 행과, 연결하려는 테이블(B)의 일치하는 행을 반환
: 일치하는 항목이 없으면 B의 컬럼 값에 NULL 값이 출력
---- LEFT JOIN 기본 구문
select 컬럼1, 컬럼2...
from 테이블1 as a ----- 기준테이블 : 테이블1
left join basic.theglory2 as b
on a.공통컬럼=b.공통컬럼
RIGHT 조인의 경우, LEFT의 반대로 오른쪽 컬럼이 기준이 된다.
LEFT JOIN에서 순서만 변경하면 되기 때문에 별도로 학습하지 않는다.
: 테이블의 모든 데이터를 보고 싶을 때
: MySQL의 경우 지원 X (UNION과 LEFT & RIGHT JOIN의 결합)
실무에서 하면 "딱밤" (리소스 및 비용 엄청 남)
select 컬럼1, 컬럼2,...
from 테이블명1 a left join 테이블명2 b
on a.공통컬럼=b.공통컬럼
union
select 컬럼1, 컬럼2,...
from 테이블명1 a right join 테이블명2 b --- LEFT 조인으로 테이블1과 2의 위치를 바꿔주면 된다.
on a.공통컬럼=b.공통컬럼
구분 UNION '결합방식' 수직 결합 특징SELECT 문은 같은 수의 열을 가져야 합니다. 각 SELECT 문의 열은 동일한 순서를 가져야 합니다. '종류' UNION : 결합한 결과에서 중복되는 행은 하나만 표시 UNION ALL: 결합한 결과에서 중복되는 행을 모두 표시
구분 JOIN '결합방식' 수평 결합 특징각 테이블은 결합을 위해 공통컬럼을 반드시 1개이상 가져야 합니다. PK 는 기본키라고 부르며, NULL 일 수 없고, 유일한 값을 가집니다. 테이블 당 하나의 기본키만 가질 수 있습니다. FK 는 외래키라고 부르며, 다른 테이블의 PK 와 연결되는 컬럼을 의미합니다. (즉, PK 와 공통컬럼) '종류' INNER / LEFT / FULL OUTER