题目描述

Employee 表包含所有员工,他们的经理也属于员工。每个员工都有一个 Id,此外还有一列对应员工的经理的 Id。

Id Name Salary ManagerId
1 Joe 70000 3
2 Henry 80000 4
3 Sam 60000 NULL
4 Max 90000 NULL

给定 Employee 表,编写一个 SQL 查询,该查询可以获取收入超过他们经理的员工的姓名。在上面的表格中,Joe 是唯一一个收入超过他的经理的员工。

Employee
Joe

相关知识

此题不需要前置知识

解题过程

  1. 分析题意

    • 使用内连接连接两个Employee表,筛选条件ManagerId=Id且工资高于老板
  2. 编写sql

    SELECT
        e.`Name` AS Employee
    FROM
        Employee e,
        Employee r
    WHERE
        e.ManagerID=r.Id AND e.Salary > r.Salary
    
  3. 提交,运行通过

  4. 查看题解,发现有人使用的是左连接,这样会多一些记录,因为有些人没有领导时会被用NULL填充,对于当前题使用左连接我认为没有意义

学习总结

此题没有学习到内容