두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법
두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다.
SELECT <열 목록>
FROM <첫 번째 테이블>
INNER JOIN <두 번째 테이블>
ON <조인 조건>
[WHERE 검색 조건]
#INNER JOIN을 JOIN이라고만 써도 INNER JOIN으로 인식합니다.
SELECT A.ID, A.NAME, A.NICKNAME
FROM A INNER JOIN B
ON A.ID = B.ID

두 테이블을 조인할 때, 1개의 테이블에만 데이터가 있어도 결과가 나온다.
SELECT <열 목록>
FROM <첫 번째 테이블(LEFT 테이블)>
<LEFT | RIGHT | FULL> OUTER JOIN <두 번째 테이블(RIGHT 테이블)>
ON <조인 조건>
[WHERE 검색 조건]
SELECT A.ID, A.NAME, A.NICKNAME
FROM A LEFT OUTER JOIN B
ON A.ID = B.ID
SELECT A.ID, A.NAME, A.NICKNAME
FROM A LEFT OUTER JOIN B
ON A.ID = B.ID
WHERE B.ID IS NULL
SELECT A.ID, A.NAME, A.NICKNAME
FROM A FULL OUTER JOIN B
ON A.ID = B.ID
SELECT A.ID, A.NAME, A.NICKNAME
FROM A LEFT OUTER JOIN B
ON A.ID = B.ID
WHERE A.ID IS NULL OR B.ID IS NULL


한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인시키는 기능이다. 상호 조인 결과의 전체 행 개수는 두 테이블의 각 행의 개수를 곱한 수만큼 된다. 카티션 곱(CARTESIAN PRODUCT)이고 하고 모든 경우의 수를 표현하는 방법이다.
SELECT *
FROM <첫 번째 테이블>
CROSS JOIN <두 번째 테이블>

자기 자신과 자기 자신을 조인한다. 자신이 갖고 있는 칼럼을 다양하게 변형시켜 활용할 때 자주 사용한다.
SELECT <열 목록>
FROM <테이블> 별칭A
INNER JOIN <테이블> 별칭B
[WHERE 검색 조건]

출처