Sql 性能连接与相关子查询

Sql Performance join Vs co-related Subquery

TABLE : 员工 (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) 上的主键,我希望两者具有非常相似的性能。

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