Sql JOIN和a.ID=b.ID有什么区别
我一直在使用连接,但今天我看到一个简单的代码是这样的:Sql JOIN和a.ID=b.ID有什么区别,sql,oracle,Sql,Oracle,我一直在使用连接,但今天我看到一个简单的代码是这样的: SELECT Name FROM customers c, orders d WHERE c.ID=d.ID 这只是旧方法?没有区别,使用该方法或JOIN执行计划将是相同的。没有区别,使用该方法或JOIN执行计划将是相同的。这两个查询在语义上是相同的。使用联接,可以在联接子句或WHERE子句中指定谓词 这两个查询在语义上是相同的。使用联接,可以在联接子句或WHERE子句中指定谓词 仅进行内部联接时,隐式样式和ANSI联接之间没有太大区别
SELECT Name FROM customers c, orders d WHERE c.ID=d.ID
这只是旧方法?没有区别,使用该方法或
JOIN
执行计划将是相同的。没有区别,使用该方法或JOIN
执行计划将是相同的。这两个查询在语义上是相同的。使用联接,可以在联接子句或WHERE子句中指定谓词 这两个查询在语义上是相同的。使用联接,可以在联接子句或WHERE子句中指定谓词 仅进行内部联接时,隐式样式和ANSI联接之间没有太大区别。很可能没有区别,因为数据库将以相同的方式执行它们
但它可能很快变得复杂,至少在允许进行隐式外部联接时是如此。有几件事是Join可以做的,但你不能用老方法做。我相信下面的语句不能用隐式连接(取自下面的链接)来表达
阅读更多信息
对于ANSI外部联接和Oracle外部联接语法之间的等效性,似乎存在一些混淆。下面的例子解释了这两种语法的等价性和不等价性
当只进行内部连接时,隐式样式和ANSI连接之间没有太大区别。很可能没有区别,因为数据库将以相同的方式执行它们 但它可能很快变得复杂,至少在允许进行隐式外部联接时是如此。有几件事是Join可以做的,但你不能用老方法做。我相信下面的语句不能用隐式连接(取自下面的链接)来表达 阅读更多信息 对于ANSI外部联接和Oracle外部联接语法之间的等效性,似乎存在一些混淆。下面的例子解释了这两种语法的等价性和不等价性 看这里,看这里
SELECT *
FROM T1 LEFT OUTER JOIN T2
ON (T1.SOME_VALUE = 11 and T1.ID = T2.ID)
WHERE T1.OTEHR_VALUE > 3;