我有这个架构:

Emp(eid: integer,ename: string,age: integer,salary: real)
Works(eid:integer,did: integer,pct_time: integer)
Dept(did:integer,budget: real,managerid:integer)


我正在尝试打印每位薪水超过其工作所在部门预算的员工的姓名和薪资。

我有这个SQL语句,但是它为ename返回一个空列,我不确定为什么。有人可以帮忙吗?

select E.ename, E.Salary
from Emp E
where E.salary > all (select D.budget
    from Dept D, Works W
    where E.eid = W.eid and D.did = W.did)

最佳答案

您可以通过普通联接来做到这一点

SELECT E.ename
FROM Emp E
JOIN Works W ON E.eid = W.eid
JOIN Dept D ON D.did = W.did
WHERE E.salary > D.budget

关于mysql - MySQL查询以显示每个员工的姓名和工资,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42877935/

10-15 18:37