根据以下代码示例,使用JOIN而不是WHERE子句是否存在性能差异(或任何其他原因):
EX1。
select *
from table_1, table_2
where table_1.id=table_2.id;
EX2。
select *
from table_1
join table_2 on
table_1.id = table_2.id;
答案 0 :(得分:5)
您可以参考:Bad habits to kick : using old-style JOINs(该链接适用于SQL Server,但大多数点也适用于Oracle )。现在不鼓励使用逗号分隔的JOINS。您应该使用JOINS的第二种格式,因为它更具可读性,并且现在强烈推荐并广泛使用。就性能而言,两种语法之间存在 no 差异。 JOINS的第一种格式(即逗号分隔)是1992年以前的标准SQL连接语法。
同样在Oracle的情况下,当你必须使用LEFT JOINS或RIGHT JOINS时,你必须使用old style of using (+)来识别外部连接的表。所以它令人困惑,使查询的可读性降低。所以使用显式JOINS(版本2在你的情况下)使它更容易理解和更易读。