Leetcode 182 查找重复的电子邮箱

题目:182. 查找重复的电子邮箱

我的解答

1
2
3
4
5
6
7
8
# Write your MySQL query statement below
SELECT name AS Employee
FROM (
    SELECT a.name AS name, a.salary AS mySalary, b.salary AS manaSalary
    FROM Employee a, Employee b
    WHERE a.managerId = b.id
) as b
WHERE mySalary > manaSalary;

更好的答案:

自联结

1
2
3
4
SELECT e1.name AS Employee
FROM Employee AS e1, Employee AS e2
WHERE e1.managerID = e2.id
AND e1.salary > e2.salary;

子查询

1
2
3
4
5
6
SELECT name AS Employee
FROM Employee as e
WHERE salary > (
SELECT salary
FROM Employee
WHERE id = e.managerId);