首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于查找高于任何经理的雇员工资的MySQL查询

用于查找高于任何经理的雇员工资的MySQL查询
EN

Stack Overflow用户
提问于 2017-03-20 00:30:15
回答 2查看 2.6K关注 0票数 0

所以,我有这样的模式:

代码语言:javascript
复制
Emp(eid: integer,ename: string,age: integer,salary: real)
Works(eid:integer,did: integer,pct_time: integer)
Dept(did:integer,budget: real,managerid:integer)

我想返回那些薪水高于任何经理的员工(无论他们的部门是什么)。

代码语言:javascript
复制
select E.ename, D.did, E.eid
from Emp E
join Works W ON E.eid = W.eid
join Dept D ON D.did = W.did
where E.salary > (select E2.salary from Emp E2, Dept D2 
                where E2.eid = D2.managerid)

但是sub查询语句返回了多行。如何比较两个表中的多个行以获得正确的结果?分组应该是可行的,对吧?

EN

回答 2

Stack Overflow用户

发布于 2017-03-20 01:07:21

你的需求可以转化为找到一名员工,他的经理的工资低于他的工资。你可以试试这个。

代码语言:javascript
复制
 SELECT e.*
 FROM emp e
 WHERE EXISTS (SELECT 1
                          FROM emp e2 INNER JOIN 
                               dept d2
                           ON e2.eid = d2.managerid 
                          WHERE  e2.salary < e.salary);
票数 2
EN

Stack Overflow用户

发布于 2017-03-20 01:01:22

如果你想返回工资高于任何经理的员工,为什么不找出所有员工的工资高于所有经理的最低工资?

代码语言:javascript
复制
select E.ename, D.did, E.eid
from Emp E
join Works W ON E.eid = W.eid
join Dept D ON D.did = W.did
where E.salary > (select min(E2.salary) 
                  from Emp E2, Dept D2 
                  where E2.eid = D2.managerid)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42889079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档