我有这个架构:
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查询打印每个员工的姓名和工资,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42877935/