Non-Equijoin

DB 2009. 6. 2. 13:45

테이블 사이에 관련 있는 Column이 있을 때 쓰는 조인을 Equijoin이라고 한다면 , Non-Equijoin은 관련 없는 Column이 있을 때 조인하는 것을 말한다고 이해하면 되겠다.


예를 들어 salgrade 테이블과 emp 테이블을 참조해서 사원번호, 이름, 업무, 급여, 급여의 등급, 상한값, 하한값을 출력한다고 가정하자.

사원번호, 이름, 업무, 급여는 emp테이블에 속해 있고, 급여의 등급, 상한값, 하한값은 salgrade 테이블에 속해 있다.

두 테이블에 공통되는 Column은 없지만 sal이 salgrade의 상한값, 하한값 사이에 속해 있다는 관련성은 있다.

이 때, BETWEEN AND를 사용해서 조인하는데 이렇게 조인하는 것을 Non-Equijoin이라고 한다.


SELECT e.empno, e.ename, e.job, e.sal, s.grade, s.losal, s.hisal
FROM salgrade s, emp e
WHERE e.sal BETWEEN s.losal AND s.hisal AND e.deptno = 10;

//emp테이블의 sal이 salgrade 테이블의 losal과 hisal 사이에 있고 emp테이블의 deptno가 10인

//sal을 검색하는 구문이다.


<=, >= 와 같이 다른 연산자를 사용 가능하나 BETWEEN AND 가장 단순하다.

BETWEEN AND 사용 시 하한값을 먼저 명시하고 상한값을 나중에 명시해야 한다는 점을 명시하자.

[출처] Non-Equijoin|작성자 이경모


'DB' 카테고리의 다른 글

그룹 함수  (0) 2009.06.02
GROUP BY  (0) 2009.06.02
Join  (0) 2009.06.02
Equijoin  (0) 2009.06.02
Outer Join  (0) 2009.06.02
Posted by 으랏차
,