JOIN和a.ID = b.ID之间有什么区别

时间:2013-06-06 16:09:53

标签: sql oracle

我一直在使用JOINS,但今天我看到了一个类似的简单代码:

SELECT Name FROM customers c, orders d WHERE c.ID=d.ID 

这只是旧方式?

3 个答案:

答案 0 :(得分:2)

没有区别,执行计划将使用该方法或JOIN

相同

答案 1 :(得分:1)

这两个查询在语义上是相同的。使用连接,可以在JOIN或WHERE子句中指定谓词。

答案 2 :(得分:0)

在进行内部连接时,隐式样式和ANSI连接之间没有太大区别。可能,没有区别,因为数据库会执行相同的操作。

但它很快就会变得复杂,至少在你被允许进行隐式外连接时。加入可以做的一些事情是你不能做旧的方式。我认为以下语句不能用隐式连接表示(取自下面的链接)。

SELECT *
FROM T1 LEFT OUTER JOIN T2
ON (T1.SOME_VALUE = 11 and T1.ID = T2.ID)
WHERE T1.OTEHR_VALUE > 3;

阅读this了解详情。

  

似乎对ANSI外连接和Oracle外连接语法之间的等效性存在一些混淆。以下示例解释了这两种语法的等价性和不等式。