MySQL找到了从2个部门中赚取最多钱的员工

时间:2016-12-18 03:51:39

标签: mysql sql

好的,这是一个两个问题,所以要准备一些抽象的东西。

我正在尝试找到连接到Employees的2个表(Dep1和Dep2),这些表可能具有相关工资的不同位置(为简单起见,假设它们之间没有关联表,即使一些关联将出现在示例中)。第一个问题,如果我想知道谁是最赚钱的员工:

SELECT name, salary
FROM Emp NATURAL JOIN Dep1emp
HAVING salary >= ALL (SELECT salary
FROM Emp, Dep1emp
WHERE Emp.did = Dep1emp.did);

如果没有其他职位,这就足够了,但既然可以,我怎么能总结呢?例如:

Name       Title     Salary
John      Writter     1k
John     Publisher    2k

在此问题解决之后,需要添加Dep2(我们的朋友约翰也可以参与其中。)并确定谁获得了最多。

我的想法是SELECT x FROM(SELECT ...),但它不起作用。完全没有。

感谢您提供的所有帮助!

2 个答案:

答案 0 :(得分:1)

我想你想要一个union all和聚合。您的数据结构有点不清楚,但是这样的事情会得到两个表中工资总额最大的员工姓名:

select name, sum(salary) as total_salary
from ((select name, salary from dep1emp) union all
      (select name, salary from dep2emp)
     ) e
group by name
order by total_salary desc
limit 1;

答案 1 :(得分:1)

因为这有很多功课我会给你一个正确方向的推动 - 你可以解决剩下的工作。

要查找薪水最高的员工,您可以使用以下内容:

/ThisWillNot?

祝你好运。