SQL和关系

时间:2014-04-11 22:18:27

标签: sql database

Flights(flno:integer,from:string,to:string, 距离:整数,离开:时间,到达:时间)

飞机(援助:整数,aname:string,cruisingrange:整数)

认证(eid:整数,援助:整数)

员工(eid:整数,ename:字符串,薪水:整数)

我需要有关此查询的SQL和关系的帮助:

找到可以飞行所有员工的员工的工资和薪水。

2 个答案:

答案 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应该等于{}