您的位置:首页 > 数据库

leetcode 181. Employees Earning More Than Their Managers(SQL,相关子查询,自身连接)38

2017-10-20 20:19 495 查看
贴原题:



解析:

  本题是要求Salary大于以其ManagerId为Id的Salary的Name,并以Employee作为列名输出。

  很显然,本题是要用到嵌套查询,且子查询的条件依赖于付查询,这种子查询我们称之为相关子查询(看以下第一种解法)。另外,我们还可以采用自身连接的解法,自身连接不仅可以解决相关子查询的问题,同样还可以解决不相关子查询(看以下第二种解法)。

  笔记:以一种不和查询表中的列名字相同的列名作为输出可以采用AS子句。(用法参考如下)

贴代码:

相关子查询解法:

# Write your MySQL query statement below
SELECT Name AS Employee
FROM Employee x
WHERE Salary > (SELECT Salary
FROM Employee y
WHERE y.Id=x.ManagerId);


自身连接解法:

# Write your MySQL query statement below
SELECT x.Name AS Employee
FROM Employee x, Employee y
WHERE y.Id = x.ManagerId AND x.Salary > y.Salary;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode sql 数据库