1

次の 2 つのテーブルがあるとします。

A.a   B.b
-     -
1     3
2     4
3     5
4     6

クロスマッチングが必要な場合は、両方を行うことができます

SELECT * FROM A, B WHERE A.a = B.b; # and
SELECT * FROM A INNER JOIN B ON (A.a = B.b)

または、LEFT OUTER JOINまたはRIGHT OUTER JOINが必要な場合

SELECT * FROM A,B WHERE A.a = B.b(+); # and
SELECT * FROM A LEFT OUTER JOIN B ON (A.a = B.b)

しかし、クエリステートメント間にエンジン/パフォーマンスの違いはありますか?

4

2 に答える 2

4

彼らはおそらく、最新のRDBMSで同じ計画を生成します。構文は、1992年以降のJOINANSISQL構文です。

于 2012-09-19T01:03:54.857 に答える
0

理論的には、複数選択は最初に両方のテーブルからすべてを選択し、そのすべてのデータをメモリに保存してから、それぞれを全員と比較します。しかし実際には、それを行うデータベースはありません。最新のデータベースでは、このクエリが最適化されるため、複数選択バージョンとJOINバージョンの両方が同じように処理されます。

于 2012-09-19T01:23:19.200 に答える