오라클 sql exists 관련 질문입니다. 0 1 1,532

by 벽을넘다 [SQL Query] exists [2020.12.21 16:54:12]


문제 : 30번 부서 사원들중에 입사일은 빠른데 급여를 작게 받는

사원 출력해 주세요 (입사일 비교, 내가 빠른데 너보다 급여 작네

그러면 나를 뽑아.)

 

[정답]

select * 

from employees o 

where exists (select 'x' from employees where hire_date > o.hire_date and salary > o.salary and department_id=30)

and department_id = 30;

 

[오답]

select * 

from employees o 

where exists (select 'x' from employees where hire_date < o.hire_date and salary < o.salary and department_id=30)

and department_id = 30;

 

저는 아래로 풀었는데 답이 아니었습니다. 위 아래 과정이 같다고 생각하는데 왜 다른 결과가 나올까요.

이해가 잘 안 됩니다 ㅠㅠ 도와주세요.. .ㅠㅠ

by 마농 [2020.12.22 13:00:18]

조건의 부등호 방향이 정 반대인데 같다고 생각하는게 이상한데요?
메인 테이블인 O 가 "나" 라고 생각하시면 됩니다.
서브 테이블이 비교 대상인 "너" 테이블이 됩니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입