여러개의 테이블을 연결하여 하나의 테이블처럼 출력
모든 원소의 순서쌍은 데카르트곱(Cartesian Product)의 갯수를 갖음 -> 크로스 조인

SELECT * FROM table1 A, table2 B
SELECT * FROM table1 A CROSS JOIN table2 B

→ table1 오른쪽으로 table2가 출력됨, table1☞A, table2☞B의 별칭을 지정함

내부조인(Inner Join)

▷ 등가조인(Equi Join) = 단순 조인, 자연 조인
- 일치조건을 명시해줌

SELECT * FROM table1 A, table2 B
WHERE A.no = B.no;
SELECT * FROM table1 A NATURAL JOIN table2 B
SELECT * FROM table1 A JOIN table2 B ON (A.no = B.no);

▷ 비등가조인 : =을 사용하지 않은 조인    ex) BETWEEN A AND B

외부조인(Outer Join) : NULL값 포함 

▷ 왼쪽 외부조인 : 왼쪽 테이블에 오른쪽 테이블을 조인(왼쪽 <- 오른쪽)

WHERE table1.no = table2.no(+)
FROM table1 A LEFT OUTER JOIN table2 B ON (A.no = B.no)

▷ 오른쪽 외부조인 : 오른쪽 테이블에 왼쪽 테이블을 조인(왼쪽 -> 오른쪽)

WHERE table1.no(+) = table2.no
FROM table1 A RIGHT OUTER JOIN table2 B ON (A.no = B.no)

▷ 풀 외부조인 : 왼쪽 + 오른쪽 외부조인

SELECT * FROM table1 A, table2 B
WHERE A.no(+) = B.no
UNION
SELECT * FROM table1 A, table2 B
WHERE A.no = B.no(+);
FROM table1 A FULL OUTER JOIN table2 B ON (A.no = B.no)

자체 조인(Self Join) : 같은 테이블을 조인

  • 하나의 테이블을 여러개의 테이블처럼 활용함
SELECT t1.no, t2.no
FROM table t1, table t2
WHERE t1.no = t2.no;