• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    미해결

join 결과 테이블 집합 레벨

23.11.03 20:37 작성 조회수 177

0

안녕하세요

 

[ Group by 실습 01 ] 강의를 듣다가 실습 문제에서 결과 값이 이해가 되지 않아 질문드립니다.

-- 부서명 SALES와 RESEARCH 소속 직원별로 과거부터 현재까지 모든 급여를 취합한 평균 급여(with 절로 풀기)

수업 듣기 전, 위의 문제에서 with 절 안의 테이블을 만들려고 아래와 같이 적었습니다.

(같은 테이블 결과값이 나오는지 확인만 하려고 select 뒤에 구체적인 컬럼을 적지 않고 * 를 적었습니다.)

 

[수업 전 작성 답안 & 결과 테이블]

select *

from hr.emp a

join hr.dept b on a.deptno = b.deptno

join hr.emp_salary_hist c on a.empno = c.empno

where b.dname in('SAELS','RESEARCH');

Screenshot 2023-11-03 at 8.19.44 PM.png--> dname 에 research 만 나타납니다.

 

[강의 예시 답안]

select *

from hr.dept a

join hr.emp b on a.deptno = b.deptno

join hr.emp_salary_hist c on b.empno = c.empno

where a.dname in('SALES','RESEARCH');

Screenshot 2023-11-03 at 8.22.25 PM.png

--> 나와야 하는 결과값 잘 나옴.

 

위의 제가 적은 답안에서 어떤점이 잘못 되었는지 도무지 보이지않아서 질문드립니다.

join 만 적을시 inner join 이 적용되므로, 집합 레벨은 모든 테이블의 join 될 수 있는 모든 컬럼값 끼리 붙을 텐데, 그러면 어떤 테이블을 먼저 적던지 순서에 상관 없이 같은 결과 값이 나와야 하는 것 아닌가요?

inner join 할 시에 염두해 두어야 하는 순서나 유의점이 있을까요?

 

답변 부탁드립니다.

감사합니다.

 

답변 1

답변을 작성해보세요.

0

안녕하십니까

첫번째 SQL에서 타이핑이 잘못되었군요.

SALES인데, SAELS 로 되었습니다. 고치시면 원하시는 답이 나올 것 같습니다.

감사합니다.

J20님의 프로필

J20

질문자

2023.11.06

아,,,, 감사합니다 ㅜㅜ