관계형 데이터베이스에서는 중복 데이터를 피하기 위해 데이터를 정규화하여
저장하는데 이렇게 정규화된 테이블에서 두개 이상의 테이블들을 결합하여
데이터를 출력하는 것을 join이라고 한다
연산자
EQUI JOIN
두 테이블 간의 속성 값이 서로 일치하는 경우 join
= 연산자를 사용한다
NON EQUI JOIN
두 테이블 간의 속성 값을 비교하여 join
비교 연산자 사용
ex) BETWEEN AND, IS NULL, IS NOT NULL, IN, NOT IN, < , >, >=, <=
JOIN의 형태
INNER JOIN
JOIN절에서 값이 일치하는 행에서 SELECT
OUTER JOIN
JOIN 기준 테이블과 INNER JOIN의 합집합에서 SELECT
table1 과 table2의 교집합에서 SELECT한다
SELECT table1.attr, table2.attr
FROM table1, table2
WHERE table1.id = table2.table1_id;
각 JOIN의 기본 테이블 + JOIN의 결과에서 SELECT한다
LEFT OUTER JOIN의 경우 table1의 모든 레코드와 t1, t2의 join 결과에서 SELECT
RIGHT OUTER JOIN의 경우 table2의 모든 레코드와 t1, t2의 join 결과에서 SELECT
SELECT table1.attr, table2.attr
FROM table1 LEFT(or RIGHT) OUTER JOIN table2
WHERE table1.id = table2.table1_id;