(在oracle中)在性能上有区别吗

Select * from Table1 T1 
Inner Join Table2 T2 On T1.ID = T2.ID

And

Select * from Table1 T1, Table2 T2 
Where T1.ID = T2.ID

?


当前回答

它们应该完全一样。然而,作为一种编码实践,我宁愿看到Join。它清楚地表达了你的意图,

其他回答

从功能上讲,它们是相同的。不过,我同意使用连接更好地描述您想要做的事情。很多时候,我认为我知道我想如何查询一些东西,直到我开始做连接,并意识到我想做一个不同于我头脑中的原始查询。

在PostgreSQL中,它们绝对没有区别——它们都等同于相同的查询计划。我99%确信甲骨文也是如此。

如果查询优化器的工作是正确的,那么这些查询之间应该没有区别。它们只是指定相同期望结果的两种方法。

它们应该完全一样。然而,作为一种编码实践,我宁愿看到Join。它清楚地表达了你的意图,

它们在逻辑上是相同的,但是在采用ANSI语法的Oracle早期版本中,在更复杂的情况下经常会出现错误,所以在使用它时有时会遇到来自Oracle开发人员的阻力。