SQL 5-10. 비등가 조인
관련링크
본문
비등가 조인은 동등 연산자 아닌 연산자를 포함하는 조인 조건이다.
EMPLOYEES테이블과 JOB_GRADES테이블의 관계에서 비등가 조인의 예를 볼 수 있다.
두 테이블의 관계는 EMPLOYEES테이블의 SALARY열이 JOB_GRADES테이블의 LOWEST_SALARY 열 값과
HIGHEST_SALARY 열 값 사이에 있어야 한다.
관계는 등호(=) 이외의 연산자를 사용하여 얻는다.
예제) 비등가 조인으로 레코드 검색
오라클 디비 예제 :
SELECT e.last_name, e.salary, j.grade_level
FROM employees e join job_grades j
ON e.salary
BETWEEN j.lowest_sal AND j.highest_sal;
☞설명) 비등가 조인
예제는 비등가 조인을 생성하여 사원의 급여 등급을 계산하는데, 급여는 해당 등급의 최저급여와 최고급여 사이에 있어야 한다.
테이블 별칭을 지정한 것은 모호성 때문이 아니고 성능 상의 이유 때문입니다.
이 질의가 실행되면 모든 사원이 정확히 한 번만 표시된다는 점에 유의해야 한다.
다음 두 가지 이유로 인해 사원의 목록에 반폭 표시되지 않는다.
1.․ 업무 등급 테이블에 겹치는 등급을 포함하는 행이 없다.
즉 사원의 급여 값은 급여 등급 테이블의 한 행에 있는 최저급여와 최고급여 사이에만 있다.
2. 모든 사원의 급여는 업무 등급 테이블에 의해 제한된다.
즉 LOWEST_SAL열의 최저급여보다 적게 받거나 HIGHEST_SAL열의 최고급여보다 많이 받는 사원은 없다.
참고 : <= 및 >= 등의 다른조건을 사용할 수 있지만 BETWEEN이 가장 간단하다.
BETWEEN을 사용할 경우 낮은 값을 먼저 지정하고 높은 값을 나중에 지정해야 한다.
SELECT e.last_name, e.salary, j.grade_level
FROM employees e, job_grades j
WHERE e.salary
BETWEEN j.lowest_sal AND j.highest_sal;