경진의 블로그

SELF JOIN 본문

자바개발과정/오라클(Oracle)

SELF JOIN

aith 2008. 5. 27. 20:55
SELF JOIN

대체로 JOIN이라고 하면 어떤 테이블과 또 다른 테이블간을 특정 COLUMN으로 연결하는 경우를 의미한다.
SELF JOIN은 테이블간의 JOIN은 맞는데 다른 테이블간의 JOIN이 아니고 같은 테이블을 마치 다른 테이블 처럼 인식시켜 JOIN을 하는 것이다.
그래서 자신의 JOIN에서는 테이블에 반드시 ALLIAS(별명)을 사용한다.

TDEPT테이블에 자신의 상위 부서 정보를 관리하고 있다.
이 테이블을 이용하여 부서코드, 부서명, 상위부서코드, 상위부서명을 읽어오는 SQL을 만든다.

SELECT
       A.dept_code 부서코드
      ,A.dept_name 부서명
      ,B.dept_code 상위부서코드
      ,B.dept_name 상위부서명
  FROM tdept A
      ,tdept B
 WHERE B.dept_code = A.parent_dept;

문제5
TEMP와 TDEPT를 이용하여 다음 컬럼을 보여주는 쿼리를 만든다.
상위부서가 ‘CA0001’인 부서에 소속된 직원을 1.사번, 2.성명, 3.부서코드, 4.부서명, 5.상위부서코드, 6.상위부서명,7.상위부서장코드, 8.상위부서장성명 순으로 보여주면 된다.

SELECT
       A.emp_id
      ,A.emp_name
      ,B.dept_code
      ,B.dept_name
      ,C.dept_code
      ,C.dept_name
      ,D.emp_id
      ,D.emp_name
  FROM temp A
      ,tdept B
      ,tdept C
      ,temp D
 WHERE B.dept_code = A.dept_code
   AND C.dept_code = B.parent_dept
   AND C.dept_code = 'CA0001'
   AND D.emp_id = C.boss_id

'자바개발과정 > 오라클(Oracle)' 카테고리의 다른 글

DECODE(IF문)  (0) 2008.05.27
ROWNUM  (0) 2008.05.27
SELF JOIN  (0) 2008.05.27
OUTER JOIN  (0) 2008.05.27
NON EQUI JOIN  (0) 2008.05.27
EQUI JOIN  (0) 2008.05.27
Tag
0 Comments
댓글쓰기 폼