mysql - Mysql 查找飞机名称,使所有获得驾驶资格的飞行员的收入超过 80,000 美元

标签 mysql relational-division

  1. 以下关系跟踪航空公司航类信息:

    FLIGHTS(flno: integer, from: string, to: string, distance: integer, departs:time,arrives: time, price: integer)
    AIRCRAFT(aid: integer, aname: string, cruisingrange: integer) CERTIFIED(eid: integer, aid: integer) EMPLOYEES(eid: integer, ename: string, salary: integer)

注意:-员工关系也描述了飞行员和其他类型的员工;每个飞行员都获得了某些飞机的认证,并且只有飞行员获得了某些飞机的认证 飞翔。

问题:找到飞机的名称,使所有获得操作这些飞机资格的飞行员的收入超过 80,000 美元。

帮我解决这个问题。我的问题是

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,此查询也会给出航类名称。

最佳答案

SELECT distinct aname FROM aircraft
 JOIN certified ON aircraft.aid = certified.aid
 JOIN employees ON employees.eid = certified.eid
WHERE employees.salary> 80000
 AND aircraft.aid NOT IN 
(SELECT aircraft.aid FROM aircraft
 JOIN certified ON aircraft.aid = certified.aid
 JOIN employees ON employees.eid = certified.eid
WHERE employees.salary <= 80000)

关于mysql - Mysql 查找飞机名称,使所有获得驾驶资格的飞行员的收入超过 80,000 美元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42049608/

相关文章:

MySql关系除法内连接语法超过3个表

java、jsp查询数据库中的汉字

sql - 查找包含多个长格式条件的 ID

sql - 所有 SQL 查询都可以在关系代数、域和元组关系演算中表示吗

sql - 如何找到相等的子集?

mysql - SQL:多对多关系和 'ALL' 子句

MySQL 仅更新 WHERE max()

php - 如何在 if 条件下使用数组

php - MySQL 命令行客户端问题 + 错误 2003

mysql - 无法远程连接到在 EC2 实例(非 RDS)上运行的 MySQL 实例