我一直在使用JOINS,但今天我看到了一个类似的简单代码:
SELECT Name FROM customers c, orders d WHERE c.ID=d.ID
这只是旧方式?
答案 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外连接语法之间的等效性存在一些混淆。以下示例解释了这两种语法的等价性和不等式。