
JOIN
- 2개 이상 테이블에서 연관된 데이터를 결합하여 조회할 때 사용
- 여러 테이블을 join하면 각 테이블의 데이터를 공통 컬럼 기준으로 연결해 하나의 결과로 반환한다.
- INNER JOIN / LEFT OUTER JOIN / RIGHT OUTER JOIN으로 구분된다.
INNER JOIN
- 두 테이블에서 모두 일치하는 행만 반환한다!
SELECT columns
FROM 테이블1
INNER JOIN 테이블2
ON 테이블1.column = 테이블2.column;
위 예시에서, 양 테이블의 데이터 중 ON 절의 조건에 맞는 교집합만 결과로 반환한다.
조건에 맞지 않은 행은 제외한다.
만약, ON절이 없이 INNER JOIN만 있으면, 모든 행을 서로 곱한 결과 즉 카타시안 곱을 만든다!
LEFT OUTER JOIN
- 왼쪽 테이블의 모든 행을 포함하고, 오른쪽 테이블과 일치하는 행만 결합한다.
SELECT columns
FROM 테이블1
LEFT [OUTER] JOIN 테이블2
ON 테이블1.column = 테이블2.column;
왼쪽 테이블(테이블1)의 모든 행을 가져오고, 오른쪽(테이블2)의 컬럼 값은 일치하는 값이 없으면 결과에 NULL이 들어간다.
즉, 왼쪽 기준의 전체 데이터 + 교집합.
RIGHT OUTER JOIN
- 왼쪽 테이블의 모든 행을 포함하고, 오른쪽 테이블과 일치하는 행만 결합한다.
SELECT columns
FROM 테이블1
RIGHT [OUTER] JOIN 테이블2
ON 테이블1.column = 테이블2.column;
오른쪽 테이블(테이블1)의 모든 행을 가져오고, 왼쪽(테이블2)의 컬럼 값은 일치하는 값이 없으면 결과에 NULL이 들어간다.
즉, 오른쪽 기준의 전체 데이터 + 교집합.

