0
- 다음의 관계를 얻을 항공 비행 정보를 추적 유지를 운영하는 인증 있음 :
FLIGHTS (flno : 정수에서 : 문자열로를 : 인증 (eid : 정수, 보조 : 정수) 직원 (eid : 정수, 출발 : 시간, 도착 : 시간, 가격 : 정수)
공수 정수, ename : 문자열, 급여 : 정수)
참고 : - 근로자 관계가 조종사와 다른 종류의 직원을 묘사 함. 모든 조종사는 일부 항공기에 대해 인증을 받았으며 조종사 만 으로 인증되었습니다.
질문 : 항공기 명을 찾아서 작동하도록 인증 된 모든 조종사가 $ 80,000 이상 벌어 들일 수 있도록하십시오. 이 query.my 쿼리와
도움말 나
SELECT DISTINCT A.aname FROM AIRCRAFT A WHERE A.Aid IN
(SELECT C.aid FROM CERTIFIED C, EMPLOYEES E WHERE C.eid = E.eid AND NOT EXISTS
(SELECT * FROM EMPLOYEES E1 WHERE E1.eid = E.eid AND E1.salary < 80000)) ;
이 쿼리는 직원의 미만 80,000 적립 경우에도 비행의 이름을 제공한다.
왜 이러한 많은 서브 쿼리가 간단한 결합으로 시도하십시오. –
아래 답변을 닫습니다. 논리는 '80000보다 적게 수입하는 조종사가없는 리턴 행'입니다. 즉 'LEFT JOIN ... ON ... 및 급여 <= 80000 WHERE ... IS NULL' – Strawberry