好的,这是一个两个问题,所以要准备一些抽象的东西。
我正在尝试找到连接到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 ...),但它不起作用。完全没有。
感谢您提供的所有帮助!
答案 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?
祝你好运。