Oracle

09. Chapter4 Advanced Query(Join)(20081030)

Gungume 2009. 1. 9. 10:42

Self Join (P4-12)

  • 사원이름, 관리자이름 얻고 싶을 때~(P4-13 테이블 이용)
  • 사원, 관리자가 모두 emp 테이블에 있으므로 테이블 하나로 Join~(emp 테이블이 하나 더 있다고 가정, 즉 emp 테이블이 두개라고 가정)
  • 헷갈리니까 각각 Alias 지정~
  1. SQL> SELECT w.ename 사원이름, m.ename 관리자이름
      2  FROM emp w, emp m
      3  WHERE w.mgr = m.empno;
  2.  
  3. 사원이름   관리자이름
    ---------- ----------
    SCOTT      JONES
    FORD       JONES
    ALLEN      BLAKE
    WARD       BLAKE
    JAMES      BLAKE
    TURNER     BLAKE
    MARTIN     BLAKE
    MILLER     CLARK
    ADAMS      SCOTT
    JONES      KING
    CLARK      KING
    BLAKE      KING
    SMITH      FORD
  4. 13 rows selected.

 

  • KING사원은 MGR이 없음, 출력하고 싶으면 Outer Join 이용~
  1. SQL> SELECT w.ename 사원이름, m.ename 관리자이름
      2  FROM emp w, emp m
      3  WHERE w.mgr = m.empno(+);
  2.  
  3. 사원이름   관리자이름
    ---------- ----------
    FORD       JONES
    SCOTT      JONES
    JAMES      BLAKE
    TURNER     BLAKE
    MARTIN     BLAKE
    WARD       BLAKE
    ALLEN      BLAKE
    MILLER     CLARK
    ADAMS      SCOTT
    CLARK      KING
    BLAKE      KING
    JONES      KING
    SMITH      FORD
    KING
  4. 14 rows selected. 

이 글은 스프링노트에서 작성되었습니다.