조인(JOIN)이란?
- 두 개 이상의 테이블을 서로 결합하여 하나의 결과를 만드는 것
내부 조인(INNER JOIN)
- 두 테이블에서 일치하는 데이터만 반환
- 일반적으로 키워드 없이
JOIN으로 사용하면 default로 INNER JOIN이 실행

SELECT A.column1, B.column2
FROM A
INNER JOIN B ON A.id = B.id;
왼쪽 외부 조인(LEFT OUTER JOIN)
- 왼쪽 테이블의 모든 데이터를 반환하고, 오른쪽 테이블에 일치하는 데이터가 없으면
NULL을 반환

SELECT A.column1, B.column2
FROM A
LEFT OUTER JOIN B ON A.id = B.id;
오른쪽 외부 조인(RIGHT OUTER JOIN)
- 오른쪽 테이블의 모든 테이터를 반환하고, 왼쪽 테이블에 일치하는 데이터가 없으면
NULL을 반환

SELECT A.column1, B.column2
FROM A
RIGHT OUTER JOIN B ON A.id = B.id;
합집합 조인(FULL OUTER JOIN)
- 두 테이블의 모든 데이터를 반환하고, 일치하지 않는 데이터는
NULL을 반환

SELECT A.column1, B.column2
FROM A
FULL OUTER JOIN B ON A.id = B.id;
교차 조인(CROSS JOIN)
- 두 테이블의 모든 가능한 행 조합(데카트르 곱)을 생성
- 조인 조건을 지정하지 않아도 되며, 일반적으로 모든 조합을 조회할 때 사용
- 결과 수는
A 테이블의 행 수 × B 테이블의 행 수
SELECT A.column1, B.column2
FROM A
CROSS JOIN B;
자기 조인(SELF JOIN)
- 한 테이블을 기준으로 스스로 조인
- 동일 테이블의 다른 행을 연결하기 위해
별칭(Alias)을 사용
SELECT E.name AS Employee, M.name AS Manager
FROM Employees E
LEFT JOIN Employees M ON E.manager_id = M.id;