SELF JOIN
1.의미 : 대체로 JOIN이라고 하면 어떤 테이블과 또 다른 테이블간을
특정 COLUMN으로 연결하는 경우를 의미한다.
SELF JOIN은 테이블간의 JOIN은 맞는데 다른 테이블간의 JOIN이 아니고
같은 테이블을 마치 다른 테이블처럼 인식시켜 JOIN을 하는것이다.
그래서 SELF JOIN에서는 테이블에 반드시 ALIAS(별명)를 사용한다.
2.구문 :
SELECT ALIAS1.COLUMN1,ALIAS2.COLUMN2,.....
FROM TABLE1 ALIAS1,TABLE1 ALIAS2...
WHERE ALIAS1.COLUMN = ALIAS2.COLUMN
3.용도 : 특별히 어떤경우를 위해 사용해야한다는 규정은 없지만
경험적으로 볼때
주로 1단계 순환참조가 필요한 경우에 사용된다.
4 예제 :
SELECT A.EMPNO 사번, A.ENAME 사원명,
B.EMPNO 상급자,B.ENAME 상급자명
FROM EMP A,EMP B
WHERE B.EMPNO=A.MGR
사번 사원명 상급자 상급자명
---------- ---------- ---------- ----------
7788 SCOTT 7566 JONES
7902 FORD 7566 JONES
7499 ALLEN 7698 BLAKE
7521 WARD 7698 BLAKE
7900 JAMES 7698 BLAKE
7844 TURNER 7698 BLAKE
7654 MARTIN 7698 BLAKE
7934 MILLER 7782 CLARK
7999 TEST 7782 CLARK
7876 ADAMS 7788 SCOTT
7566 JONES 7839 KING
7782 CLARK 7839 KING
7698 BLAKE 7839 KING
7369 SMITH 7902 FORD
각 ROW가 사번에대한 상급자 정보를 MGR에 가지고 있을경우
1.의미 : 대체로 JOIN이라고 하면 어떤 테이블과 또 다른 테이블간을
특정 COLUMN으로 연결하는 경우를 의미한다.
SELF JOIN은 테이블간의 JOIN은 맞는데 다른 테이블간의 JOIN이 아니고
같은 테이블을 마치 다른 테이블처럼 인식시켜 JOIN을 하는것이다.
그래서 SELF JOIN에서는 테이블에 반드시 ALIAS(별명)를 사용한다.
2.구문 :
SELECT ALIAS1.COLUMN1,ALIAS2.COLUMN2,.....
FROM TABLE1 ALIAS1,TABLE1 ALIAS2...
WHERE ALIAS1.COLUMN = ALIAS2.COLUMN
3.용도 : 특별히 어떤경우를 위해 사용해야한다는 규정은 없지만
경험적으로 볼때
주로 1단계 순환참조가 필요한 경우에 사용된다.
4 예제 :
SELECT A.EMPNO 사번, A.ENAME 사원명,
B.EMPNO 상급자,B.ENAME 상급자명
FROM EMP A,EMP B
WHERE B.EMPNO=A.MGR
사번 사원명 상급자 상급자명
---------- ---------- ---------- ----------
7788 SCOTT 7566 JONES
7902 FORD 7566 JONES
7499 ALLEN 7698 BLAKE
7521 WARD 7698 BLAKE
7900 JAMES 7698 BLAKE
7844 TURNER 7698 BLAKE
7654 MARTIN 7698 BLAKE
7934 MILLER 7782 CLARK
7999 TEST 7782 CLARK
7876 ADAMS 7788 SCOTT
7566 JONES 7839 KING
7782 CLARK 7839 KING
7698 BLAKE 7839 KING
7369 SMITH 7902 FORD
각 ROW가 사번에대한 상급자 정보를 MGR에 가지고 있을경우
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
46 | 빠진이빨찾기 II | 운영자 | 2002.09.18 | 3067 |
45 | 빠진이빨찾기 | 운영자 | 2002.09.18 | 3122 |
44 | 순환참조에서의 상위코드로집계 | 운영자 | 2002.09.18 | 3226 |
43 | CONNECT BY의 SORT와 JOIN | 운영자 | 2002.09.18 | 2811 |
42 | REPORT 양식맞추기4 | 운영자 | 2002.09.18 | 2597 |
41 | REPORT 양식 맞추기 III | 운영자 | 2002.09.18 | 3015 |
40 | REPORT 양식 맞추기 II | 운영자 | 2002.09.18 | 2646 |
39 | REPORT 양식 맞추기 | 운영자 | 2002.09.18 | 31359 |
38 | 1:1 JOIN / 1:M JOIN | 운영자 | 2002.09.18 | 3000 |
37 | TUNING-01 | 운영자 | 2002.09.18 | 2739 |
36 | 소계와 합계 | 운영자 | 2002.09.18 | 3489 |
35 | 중복DATA 찾아내기 | 운영자 | 2002.09.17 | 2817 |
34 | GROUP별 DATA 분류 | 운영자 | 2002.09.17 | 2982 |
33 | PARAMETER값에 따라 변경이 일어나는 문장 | 운영자 | 2002.09.17 | 15808 |
» | SELF JOIN | 운영자 | 2002.09.17 | 3408 |
31 | Outer Join | 운영자 | 2002.09.17 | 2918 |
30 | HINTS (출처-Oracle8.0 Tuning Guide) | 운영자 | 2002.09.17 | 2735 |
29 | 단일행 문자 함수 | 운영자 | 2002.09.17 | 2977 |
28 | 단일행 수치 함수 | 운영자 | 2002.09.17 | 2869 |
27 | NOT IN 의 함정 | 운영자 | 2002.09.17 | 2713 |