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句でjoin構文を使用することに慣れておく必要があります。慣れると、クエリの意図がより明確になり、エラーが発生しにくくなります。

于 2012-05-22T01:00:59.633 に答える