타이틀이 좀. 웃깁니다.
자~ 넘어갑시다.
이번에는 NATURAL JOIN에 대해서 알아봅시다.
이것도 별것 없습니다. 단지 조인하는 두테이블에 대해서
자동으로 조인조건을 같은 데이터형식과 컬럼명을 사용하고 있는~ 으로 한정시킵니다.
알아서 묶어주는 거죠.
그래서 조인조건을 명시해줄 필요가 없는데요.
NATURAL JOIN 도 어느정도 의미만 알것 같아서.
바로 예시만 보고 끝을 내도록 할게요.
employees 테이블과 departments 테이블을 내부조인을 해서 데이터를 조회한겁니다.
결과는 NATURAL JOIN과 동일한 조회결과를 내기위해서 다음과 같이 쓰였습니다.
SELECT emp.department_id, dep.department_name, emp.first_name
FROM hr.employees emp INNER JOIN hr.departments dep
ON emp.department_id = dep.department_id and emp.manager_id = dep.manager_id;
FROM hr.employees emp INNER JOIN hr.departments dep
ON emp.department_id = dep.department_id and emp.manager_id = dep.manager_id;
이것을 NATURAL JOIN 에서는 다음과 같이 쓸 수 있습니다.
SELECT department_id, dep.department_name, emp.first_name
FROM hr.employees emp INNER JOIN hr.departments dep
FROM hr.employees emp INNER JOIN hr.departments dep
컬럼중에 department_id가 공통된 데이터 타입에 공통된 컬럼명이죠?
그리고 여기서 아셔야 할건. 그 조인조건으로 사용된 department_id에 대해서는 앞에 테이블 명을 적으면 안된다는 겁니다.
확인하시구요.
참고로, manager_id도 조인조건에 부합이 되는데, 확인을 안했습니다.
위의 쿼리의 의미는 각 부서마다 부서장을 상관으로 두고 있는 사원의 이름을 나타낸겁니다.
즉 부서장의 직속부하직원들을 조회한 것이겠네요.
이것으로 NATURAL JOIN에 대해서 글을 마무리 할게요 ^^
'데이터베이스 > SQL & PL/SQL' 카테고리의 다른 글
[SQL] WHERE 절을 활용하자, BETWEEN! (0) | 2011.07.30 |
---|---|
[SQL] WHERE 절을 활용하자, AND · OR!! (0) | 2011.07.29 |
[SQL] SELF JOIN, 내 자신과의 조인 (0) | 2011.07.28 |
[SQL] CROSS JOIN 또다른 이름 카타시안 프로덕트(Cartesian Product) (1) | 2011.07.27 |
[SQL] OUTER JOIN, 외부조인(LEFT, RIGHT, FULL) (1) | 2011.07.27 |