2025. 6. 20. 11:47ㆍ자격증/SQLD - 취득완료
깨딸은 점!!!

JOB_HISTORY JH
JOBS J
EMPLOYEES E
E를 J랑 하고 E가 또 JH랑 1:1관계를 맺엇다.
그런데, JH랑 J랑은 맺을 필요없다.
그냥 ------- 한줄로 생각하면된다.
이미 J,JH가 E랑 관계를 맺었는데, 또 J랑 JH랑 맺을 필요는 없다..
또하나,

부서는 이미 EMPLYEES랑 1:1관계를 맺었는데, 다시 JOB_HISTORY를 맺으면, 공집합이 나온다.
즉, 이미 JOIN관계를 맺고 결과가 나왔는데, 똑같이 E.DEPARTMENT_ID = D.DEPARTMENT_ID 맺었는데,
다시 D.DEPARTMENT_ID = J.DEPARTMENT_ID로 맺으면 공집합이 됨
그럼 어떻게 해야할까?
EPLOYEES로 JOB_HISTORY, JOBS랑 관계를 맺어줘야 한다.
SELECT *
FROM EMPLOYEES E, DEPARTMENTS D, LOCATIONS L, COUNTRIES C, REGIONS R, JOBS J, JOB_HISTORY JH
WHERE E.DEPARTMENT_ID = D.DEPARTMENT_ID
AND D.LOCATION_ID = L.LOCATION_ID
AND L.COUNTRY_ID = C.COUNTRY_ID
AND C.REGION_ID = R.REGION_ID
AND E.JOB_ID = J.JOB_ID
AND E.EMPLOYEE_ID = JH.EMPLOYEE_ID
AND E.EMPLOYEE_ID = 101
AND TO_CHAR(JH.START_DATE) = '97/09/21';
'자격증 > SQLD - 취득완료' 카테고리의 다른 글
| [AUTO COMMIT] - DDL, 트랜잭션 (0) | 2025.06.20 |
|---|---|
| CREATE with 제약조건 (2) | 2025.06.20 |
| GROUP BY (0) | 2025.06.19 |
| 여러 함수 작성해보기(SUBSTR, NEXT_DAY, ADD_MONTHS...) (0) | 2025.06.18 |
| LPAD, SUBSTR, REPLACE, TO_CHAR, TO_DATE (0) | 2025.06.18 |