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

これら 2 つのクエリは意味的に同一です。結合では、JOIN 句または WHERE 句のいずれかで述語を指定できます。

于 2013-06-06T16:14:11.623 に答える
0

内部結合のみを行う場合、暗黙的なスタイルと ANSI 結合の間に大きな違いはありません。おそらく、データベースはそれらを同じように実行するため、違いはありません。

ただし、少なくとも暗黙的な外部結合を許可されている場合は、すぐに複雑になる可能性があります。Join では実行できて、古い方法では実行できないことがいくつかあります。次のステートメントは、暗黙の結合では表現できないと思います(以下のリンクから取得)。

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

詳細については、これをお読みください。

ANSI の外部結合と Oracle の外部結合構文の同等性について、混乱があるようです。次の例では、これら 2 つの構文の等価性と非等価性について説明します。

于 2013-06-06T16:24:26.713 に答える