在 LeetCode 数据库问题中,有一题叫做“员工收入超过他们的经理”。链接在这里:https://leetcode.com/problems/employees-earning-more-than-their-managers/description/ .逻辑很简单:
select t.Name
from Employee t
join Employee t1
on t.ManagerId = t1.id
where t.Salary>t1.Salary
这花费了 350 毫秒。但后来我发现了一个快速提交:
select a.Name as Employee from
(
select * from Employee
group by Id
) a
left join
(
select * from Employee
group by Id
) b on a.ManagerId = b.Id
where a.Salary > b.Salary
耗时 240 毫秒。症结可能在于select * from Employee group by Id
。所以我想知道为什么 select * from table group by id
可以使查询更快。谢谢。
最佳答案
在第一次查询时比较
on t.gerId = t1.id
第二个
on a.ManagerId = b.Id
另外第一个是内连接,第二个是左连接,这些查询和结果是不一样的。
关于mysql - 为什么 'select * from Employee group by Id'比直接用Employee表快很多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52396754/