Flights(flno:integer,from:string,to:string, 距离:整数,离开:时间,到达:时间)
飞机(援助:整数,aname:string,cruisingrange:整数)
认证(eid:整数,援助:整数)
员工(eid:整数,ename:字符串,薪水:整数)
我需要有关此查询的SQL和关系的帮助:
找到可以飞行所有员工的员工的工资和薪水。
答案 0 :(得分:1)
select ename, salary from employees where eid in (
select eid from Certified where aid in (
select aid from Aircract where aname = <your aname>
)
)
我不认为航班会回答你的问题。
答案 1 :(得分:1)
SELECT ename, salary from
employees E
where not exists ((select A.aid from aircraft A)
except
(select C.aid from certified C
where C.eid=E.eid))
所以,基本上你在这里做的是选择一名员工,使得他/她飞过的飞机总数和飞机组之间的差异是空的,即 如果
所有飞机的集合是A和员工飞行的所有飞机的集合是B,那么A-B应该等于{} 。