NON-EQUI JOIN
๋๊ฐ์ ํ ์ด๋ธ์ ํน์ ํ ํค๋ฅผ ๊ธฐ์ค์ผ๋ก ํฉ์ณ์ ๋ฐ์ดํฐ๋ฅผ ํํํ๋ ๊ฒ์ JOIN์ด๋ผ๊ณ ํฉ๋๋ค. ์ฌ์ ํ ์ด๋ธ์ ๋ถ์ ๋ฒํธ๊ฐ ์๊ณ ๋ถ์ ํ ์ด๋ธ์ ๋ถ์๋ช ์ด ์์ด์ ์ฌ์์ ์ด๋ฆ๊ณผ ๋ถ์๋ช ์ ํ์ธํ๊ธฐ ์ํด์ ์ฌ์ํ ์ด๋ธ์ ๋ถ์๋ฒํธ์ ๋ถ์ ํ ์ด๋ธ์ ๋ถ์๋ฒํธ๋ก JOIN ์์ผ ๋ฐ์ดํฐ๋ฅผ ํํํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํน์ ์นผ๋ผ์ ๊ฐ๋ค๋ ํ์์ผ๋ก ์กฐ์ธ์ ์ํค๋ ๊ฒ์ EQUI JOIN์ด๋ผ๊ณ ํฉ๋๋ค. ๊ทธ๋ผ NON-EQUI JOIN์ ๋ญ๊น์?
์ํธํ๊ฐ ๋ฑ๊ธ, ์ฑ์ ๋ฑ๊ธ๊ณผ ๊ฐ์ด ํน์ ๋ฒ์์ ๋ฑ๊ธ์ ์ง์ ํ๊ณ ํด๋น ๋ฒ์์ ๋ค์์ ๋ ๋ฑ๊ธ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๊ฒ์ด NON-EQUI JOIN์ ๋๋ค. NON-EQUI JOIN์ EQUI JOIN๊ณผ ๋ค๋ฅด๊ฒ ํน์ ์นผ๋ผ์ ๋ฒ์๋ก JOIN ์ํต๋๋ค.
Oracle Scott ๊ณ์ ์ผ๋ก NON-EQUI JOIN์ ์์๋ณด๊ฒ ์ต๋๋ค.
EMP TABLE
1
2
3
4
5
|
SELECT
ENAME
,JOB
,SAL
FROM EMP;
|
EMP ํ ์ด๋ธ์ SAL ์นผ๋ผ์ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ฑ๊ธ์ ๋งค๊ฒจ์ค๊ฒ๋๋ค.
SALGRADE TABLE
1
|
SELECT * FROM SALGRADE;
|
SALGRADE ํ ์ด๋ธ์ LOSAL๊ณผ HISAL์ ๊ธฐ์ค์ผ๋ก GRADE ์นผ๋ผ์ ์ด์ฉํด์ ๋ฑ๊ธ์ ๋งค๊ธฐ๊ฒ ์ต๋๋ค.
์ฌ์ ์๊ธ๋ณ ๋ฑ๊ธ
Oracle Syntax
1
2
3
4
5
6
7
8
|
SELECT
ENAME
,JOB
,SAL
,GRADE
FROM EMP, SALGRADE
WHERE SAL >= LOSAL
AND SAL <= HISAL;
|
ANSI Syntax
1
2
3
4
5
6
7
|
SELECT
ENAME
,JOB
,SAL
,GRADE
FROM EMP JOIN SALGRADE
ON SAL BETWEEN LOSAL AND HISAL;
|
๋๊ธ