데카르트곱 => 모든 경우의 수
[SQL 1992 CODE 방식]
select *
from employees , departments
order by employee_id;
[SQL 1999 CODE 방식(CROSS JOIN)]
select *
from employees CROSS JOIN departments
order by employee_id;
-- 결과
-- count(employees) × count(departments) 행 출력
[SQL 1992 CODE 방식]
select *
from employees E, departments D
where E.department_id = d.department_id(+)
order by employee_id;
-- (+)가 안 붙은 테이블 E(employees) 테이블의 모든 행을 출력하고
-- 조건에 만족하는 행들을 보여준다.
-- E(employees)에 존재하지만 D(departments)에서 null 값도 출력
-- (+)는 양쪽에 붙으면 안된다!!
Microsoft 사 제품인 MS-SQL 서버
[SQL 1992 CODE 방식] select * from employees E, departments D where E.department_id =* d.department_id order by employee_id; -- '=' 을 중심으로 * 이 가까운 곳이 (+) 와 같은 역할
[SQL 1999 CODE 방식]
select *
from employees E INNER JOIN departments D -- INNER 생략 가능
ON E.department_id = D.department_id
order by employee_id;
-- E에 존재하는 null 값은 나오지 않는다.
[SQL 1999 CODE 방식]
select *
from employees E LEFT OUTER JOIN departments D
-- OUTER 생략 가능
-- OUTER JOIN 을 중심으로 왼쪽에 있는 테이블에 있는 모든행 출력 후
-- 조건에 만족하는 행들을 보여준다.
ON E.department_id = D.department_id
order by employee_id;
-- 종류 : LEFT, RIGHT, FULL OUTER JOIN