2017-03-18 71 views
0

我有这样的模式:MySQL查询打印的姓名和每个员工的工资

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) 

回答

1

你可以做到这一点与普通加入

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 
+0

感谢您的快速答复。我没有想到这一点! –

相关问题