为什么我应该在SQL中使用JOIN而不是WHERE?

时间:2014-07-14 19:46:05

标签: sql oracle

我已经在这里看到了其他问题的答案,并且大多数建议在SQL中使用JOIN而不是WHERE。

我是SQL的新手,大约6个月前开始使用Oracle,而且我还没有使用过JOIN。

我绝不会做任何复杂的查询。我经常使用的查询如下。使用JOIN的等价物是什么,我应该这样做并且有什么优势吗?

SELECT orders.no, orders.created, totals.net
FROM orders, totals
WHERE orders.no = totals.no

我使用古老版本的Oracle; 8i所以我相信一些JOIN正在使用(+)或其他东西,但从来没有理解它。

2 个答案:

答案 0 :(得分:0)

我的理解是执行计划是相同的,你会得到相同的结果。但是,使用JOIN更清晰,更易于阅读。我自己是WHERE旧学校的粉丝,但我已经训练自己使用JOIN代替。

这里有很好的线索,包括它们的等价方式:Inner join vs Where

自己尝试一下,你应该为两者获得相同的执行计划。

答案 1 :(得分:0)

好吧,有时它是另一种方式:出于性能原因,您必须继续使用where连接语法。

对于非常复杂的sql语句,Oracle仍然使用Oracle连接(也就是where子句)而不是ANSI连接(又名join)表现更好。

我认为没有理由不选择ANSI连接或Oracle连接。我个人更喜欢使用ANSI连接,因为它更容易阅读/理解。