인프런 커뮤니티 질문&답변

INTAEK LIM님의 프로필 이미지
INTAEK LIM

작성한 질문수

데이터 분석 SQL Fundamentals

Non Equi 조인과 Cross 조인 실습

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

작성

·

304

·

수정됨

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이 출력이 됩니다만,,, 조금 더 상세 사항을 기재해 주시겠습니까

감사합니다.

 

10:28~ 10:31초 사이에서

3번 레코드 급여 시작시점인 1982-01-01은

부서 번호 from~to range(1981-04-01 ~ 9999-12-31) 사이에 있어서 표기를 x가 아니라 o이고

4번레코드가 부서 from ~ to range에 속하지 않아 x입니다. 그런데 영상에서는 반대로 설명 및 표기 되있습니다.

 

아마 질문자님께서는 이 내용을 답으로 원하신 것 같습니다.

(alias안하면 동명 때문에 어질어질한 것 같습니다 ㅎㅎ)

INTAEK LIM님의 프로필 이미지
INTAEK LIM

작성한 질문수

질문하기