📍 JOIN
- 데이터베이스에서 두 개 이상의 테이블을 결합하여 하나의 결과 집합을 생성하는 작업이다.
- INNER JOIN, OUTER JOIN, CROSS JOIN이 있다.
- JOIN을 명시적으로 지정하지 않으면, 기본적으로 INNER JOIN이 수행된다.

📍 INNER JOIN
SELECT A.*, B.*
FROM 테이블1 AS A
INNER JOIN 테이블2 AS B
ON A.id = B.id;
SELECT A.*, B.*
FROM 테이블1 AS A
JOIN 테이블2 AS B
ON A.id = B.id;
📍 OUTER JOIN
- LEFT (OUTER) JOIN: 왼쪽 테이블의 모든 행을 포함하고, 오른쪽 테이블과 일치하는 행이 있는 경우 해당 행을 결과에 포함, 일치하지 않는 경우에는 NULL 값이 들어간다.
- RIGHT (OUTER) JOIN: 오른쪽 테이블의 모든 행을 포함하고, 왼쪽 테이블과 일치하는 행이 있는 경우 해당 행을 결과에 포함, 일치하지 않는 경우에는 NULL 값이 들어간다.
- FULL OUTER JOIN: 두 테이블의 모든 행을 결과에 포함하며, 일치하지 않는 경우에는 NULL 값이 들어간다. MySQL에서는 FULL OUTER JOIN을 직접적으로 지원하지 않으므로 LEFT (OUTER) JOIN과 RIGHT (OUTER) JOIN을 UNION으로 결합하여 구현한다.
SELECT A.*, B.*
FROM 테이블1 AS A
LEFT JOIN 테이블2 AS B
ON A.id = B.id;
SELECT A.*, B.*
FROM 테이블1 AS A
RIGHT JOIN 테이블2 AS B
ON A.id = B.id;
SELECT A.*, B.*
FROM 테이블1 AS A
LEFT JOIN 테이블2 AS B
ON A.id = B.id
UNION
SELECT A.*, B.*
FROM 테이블1 AS A
RIGHT JOIN 테이블2 AS B
ON A.id = B.id;
📍 CROSS JOIN
- 두 테이블 간의 모든 가능한 조합을 반환한다.
SELECT A.*, B.*
FROM 테이블1 AS A
CROSS JOIN 테이블2 AS B;