• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    미해결

Non Equi 조인과 Cross 조인 실습 강의 내용에 대해 질문드립니다

23.11.16 16:31 작성 23.11.16 16:37 수정 조회수 202

0

선생님 안녕하세요

강의 잘 보고 있습니다

강의 중간(10:20~25초 사이)내용에 대해 확인하고 싶은 부분이 있습니다

수업내용중 아래의 sql로 질의할때

-- 직원 급여의 이력정보를 나타내며, 해당 급여를 가졌던 시점에서의 부서번호도 함께 가져올것.

select *

from hr.emp_salary_hist a

join hr.emp_dept_hist b on a.empno = b.empno;

record 4번 데이터의 deptno 값 30이 출력된다고 하셨습니다만

 

a.fromdate between b.fromdate and b.todate

위의 between 조건으로 조인해서 sql로 질의했을 때에

출력되는 결과물은

record 3번 데이터 deptno 값 20이 출력되는데,

 

record 3번의 a.fromdate (1982-01-01)값만이

조인된 b.fromdate(1981-04-01) and b.todate(9999-12-31)의 범위에 해당되어 출력되는 인식인데 (제가 잘못 이해했을 수도 있습니다만... )
어떻게 deptno값 30이 출력되는지가 궁금합니다

 

답변 1

답변을 작성해보세요.

0

안녕하십니까,

제가 질문을 잘 이해하지 못했습니다.

'어떻게 deptno값 30이 출력되는지가 궁금합니다' 라는 부분이 첫번째 SQL문에서 라는 건가요? 아님 두번째 SQL에서 인건가요?

첫번째 SQL 이라면 EMPNO로 M:M 조인이 되어서 당연히 30이 출력이 됩니다만,,, 조금 더 상세 사항을 기재해 주시겠습니까

감사합니다.