问题描述
表格:员工(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)
上的主键,我希望两者具有非常相似的性能。
您可以检查执行计划,看看是否有任何差异。