题目描述
Employee 表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。给定 Employee 表,编写一个 SQL 查询,该查询可以获取收入超过他们经理的员工的姓名。在上面的表格中,Joe 是唯一一个收入超过他的经理的员工。

题解
SELECT E1.Name AS Employee
FROM
Employee AS E1
INNER JOIN
Employee AS E2
ON E1.ManagerId = E2.Id
WHERE E1.Salary>E2.Salary;
解题思路:因为要查询超过经理收入的员工,而经理id 和员工 id(经理也是员工)不在同一列,所以对这个表根据其员工ID与经理id相同进行inner join
本文介绍了一种SQL查询技巧,通过内连接操作从Employee表中筛选出薪资高于其直接上级(经理)的员工。具体实现方式为,首先定义两个别名E1和E2分别代表员工和经理,然后通过ManagerId与Id的匹配建立连接,最后利用WHERE子句筛选出薪资较高的员工。
1869

被折叠的 条评论
为什么被折叠?



