SQL 5-5 USING절을 포함하는 조인 작성(오라클에서 사용됨, MSSQL에서는 사용 안됨)
관련링크
본문
5-5 USING절을 포함하는 조인 작성(오라클에서 사용됨, MSSQL에서는 사용 안됨)
․ 여러 열이 같은 이름을 가지지만 데이터 유형이 일치 하지 않을 경우, NATURAL JOIN 절을 수정하여 USING 절을 포함 시키면 등가조인에 사용될 열을 지정할 수 있다.
․ USING절을 사용하면 둘 이상의 컬럼명이 일치할 때 한열만 일치시킬 수 있다.
USING절을 사용하면 등가 조인에서 사용될 컬럼만을 지정할 수 있다
․ 참조되는 컬럼에 테이블 이름이나 별칭을 사용해서는 안 된다.
․ NATURAL JOIN 및 USING절은 서로 배타적이다.
․ 자연 조인은 이름과 데이터 유형이 일치하는 모든 열을 사용하여 테이블을 조인한다.
. USING 절에서 참조되는 열은 SQL문 어디에서도 수식자(테이블 이름 또는 별칭)를 가져서는 안 된다.
예를 들어, 다음 명령문은 유효하다.
SELECT l.city, d.department_name
FROM locations l JOIN departments d USING (location_id)
WHERE location_id = 1400;
다음 명령문은 WHERE절에서 LOCATION_ID가 자세히 지정되었기 때문에 유효하지 않다.
SELECT l.city, d.department_name
FROM locations l JOIN departments d USING (locateion_id)
WHERE d.location_id = 1400;
ORA-25154 : column part of USING clause cannot have qualifier
동일한 제약이 자연 조인에도 적용된다.
따라서 두 테이블 모두에서 동일한 이름을 가진 열은 수식자 없이 사용되어야 한다.
예제) USING절로 레코드 검색
오라클 디비 예제 :
SELECT e.employee_id, e.last_name, d.location_id
FROM employees e JOIN departments d
USING (department_id);
☞설명)
예제는 EMPLOYEES 및DEPARTMENTS테이블의 DEPARTMENT_ID열을 조인하여 사원이 일하는 위치를 표시한다.
이 예제는 다음과 같이 등가 조인으로도 작성할 수 있다.
오라클 디비 예제 :
SELECT employee_id, last_name,
employee.department_id, location_id
FROM employees, deparatments
WHERE employees.department_id = departments.department_id;