0

我一直在使用 JOINS,但今天我看到一个简单的代码是这样的:

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

这只是旧方法吗?

4

3 回答 3

2

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

于 2013-06-06T16:11:38.387 回答
1

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

于 2013-06-06T16:14:11.623 回答
0

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

但它很快就会变得复杂,至少当您被允许执行隐式外部连接时。加入可以做的一些事情是你不能用旧方法做的。我相信下面的语句不能用隐式连接来表达(取自下面的链接)。

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

阅读内容以获取更多信息。

关于 ANSI 外连接和 Oracle 外连接语法之间的等效性似乎有些混淆。下面的例子解释了这两种语法的等价和不等价。

于 2013-06-06T16:24:26.713 回答