4
 select  a.somefield, b.someotherfield
 from    a, b
 where   a.key = b.key

以上是否等同于:

 select  a.somefield, b.someotherfield
 from    a join b on a.key = b.key

或者:

 select  a.somefield, b.someotherfield
 from    a full join b on a.key = b.key

我很确定它相当于一个内部连接,但只是意识到我以前从未真正考虑过它。另外我想知道是否有任何边缘情况不是100%等效的?

4

1 回答 1

4

最初的概念等价于内连接。

使用“where”语法,任何外连接(左外连接、右外连接、全外连接)都没有标准等效项。Oracle 支持“+”语法,表示左外连接和右外连接。

此外,在 where 子句中省略条件相当于交叉连接。

但是,您应该习惯在 from 子句中使用连接语法。一旦习惯了它,查询的意图就会更加清晰,并且更不容易出错。

于 2012-05-22T01:00:59.633 回答