Mysql 如何编写这个复杂的SQL查询?

Mysql 如何编写这个复杂的SQL查询?,mysql,sql,join,Mysql,Sql,Join,我需要找到飞机的名称,以便所有经认证操作飞机的飞行员都能挣到60000多英镑 我写道: select aname from employee join certified on employee.eid=certified.eid join aircraft on certified.aid=aircraft.aid where salary>60000; 但是如果有任何飞行员的工资超过60000,它会返回aname,困难的是我需要找到所有飞行员的工资是否超过60000,然后才会显示a

我需要找到飞机的名称,以便所有经认证操作飞机的飞行员都能挣到60000多英镑

我写道:

select aname 
from employee join certified
on employee.eid=certified.eid
join aircraft
on certified.aid=aircraft.aid
where salary>60000;

但是如果有任何飞行员的工资超过60000,它会返回aname,困难的是我需要找到所有飞行员的工资是否超过60000,然后才会显示aname。

您可以只查找相反的情况-没有飞行员的工资低于60000:

SELECT
    aname
FROM
    Aircraft A
WHERE
    NOT EXISTS
    (
        SELECT *
        FROM Certified C
        INNER JOIN Employee E ON
            E.eid = C.eid AND
            E.salary < 60000
        WHERE C.aid = A.aid
    )

你可以看看相反的情况——没有飞行员的收入低于60000:

SELECT
    aname
FROM
    Aircraft A
WHERE
    NOT EXISTS
    (
        SELECT *
        FROM Certified C
        INNER JOIN Employee E ON
            E.eid = C.eid AND
            E.salary < 60000
        WHERE C.aid = A.aid
    )
挑选 阿纳姆 从…起 飞机A 哪里 存在 挑选* 来自认证C 内部连接雇员E ON E.eid=C.eid和 E.工资>60000 其中C.aid=A.aid 选择 阿纳姆 从…起 飞机A 哪里 存在 挑选* 来自认证C 内部连接雇员E ON E.eid=C.eid和 E.工资>60000 其中C.aid=A.aid

您可以使用WHERE。。在所有子查询中。检查文档:抱歉,更正了@pudding你可以在哪里使用。。在所有子查询中。检查文档:对不起,更正了@PuddingI,我打字更快了;非常感谢,这真的很有帮助。它证明了还有很多事情谷歌不能告诉你,但人们可以告诉你。再次感谢@TomHOne更多问题,我如何学会自己解决这些问题,您可以推荐任何文本@今天的问题只是让你的大脑习惯于以新的方式处理问题。我写了很多益智书此外,了解逻辑等价关系以及X和Y的倒数与非X或非Y的倒数也很有用;非常感谢,这真的很有帮助。它证明了还有很多事情谷歌不能告诉你,但人们可以告诉你。再次感谢@TomHOne更多问题,我如何学会自己解决这些问题,您可以推荐任何文本@今天的问题只是让你的大脑习惯于以新的方式处理问题。我写了很多益智书此外,了解逻辑等价关系以及X和Y与非X或非Y的反比也很有用。例如,在@Tom H的查询中,取所有没有员工的飞机名称在@Tom H的查询中,取所有没有员工的飞机名称