본문 바로가기

Dev. Database/오라클 실습

Join / Inline query

/*

 - Join / Inline query

 - 국가, 근무지, 부서명, 부서장, 직군(인라인), 사원번호, 사원명, 전화번호

*/


- 셀프조인 부분을 주의하자

- 인라인 쿼리 : 컬럼 한 개 기준으로는 조인보다 속도가 빠르다.

- 아우터 조인 : 데이터가 없을 때는 안 가져오겠다.


SELECT COU.COUNTRY_NAME AS 국가

     , LOC.CITY AS 근무지

     , DEPT.DEPARTMENT_NAME AS 부서명

     , MNG.FIRST_NAME || ' ' || MNG.LAST_NAME AS 부서장

     , (SELECT JOB_TITLE

        FROM JOBS JOB

        WHERE JOB.JOB_ID = EMP.JOB_ID) AS JOB_TITLE

     , EMP.EMPLOYEE_ID AS 사원번호

     , EMP.FIRST_NAME || ' ' || EMP.LAST_NAME AS 사원명

     , EMP.PHONE_NUMBER AS 전화번호

FROM COUNTRIES COU,

     LOCATIONS LOC,

     DEPARTMENTS DEPT,

     EMPLOYEES EMP,

     EMPLOYEES MNG

WHERE COU.COUNTRY_ID = LOC.COUNTRY_ID

  AND LOC.LOCATION_ID = DEPT.LOCATION_ID

  AND DEPT.DEPARTMENT_ID = EMP.DEPARTMENT_ID

  AND EMP.MANAGER_ID = MNG.EMPLOYEE_ID(+)

ORDER BY EMP.EMPLOYEE_ID 

;