Sql Performance join Vs 相关子查询

问题描述

表格:员工(id,mid,join_date)

问题 - 查找在经理之前加入的所有员工

查询 1:

Select E1.id
From Employee E1 JOIN Employee E2 ON E1.mid=E2.id
Where E1.join_date < E2.join_date

查询 2:

Select E1.id
From Employee E1
Where E1.join_date < (Select E2.join_date From Employee E2 where E2.id=E1.mid)

哪个是正确的?如果两者都正确,那么性能如何?

解决方法

他们都正确。

性能问题需要根据您系统上的数据进行测试。但是,如果使用 employee(id) 上的主键,我希望两者具有非常相似的性能。

您可以检查执行计划,看看是否有任何差异。