SQLの左結合と左外部結合の違いは何ですか?


答え 1:

SQLでは、左結合は最初のテーブルからすべてのレコードを返し、2番目のテーブルから一致したレコードを返します。 2番目のテーブルに一致するものがない場合は、最初のテーブルのレコードのみが返されます。

基本的に、左結合と左外部結合に違いはありません。 左外部結合も、左結合と同じ結果を返します。 一部のデータベースでは、左結合は左外部結合と呼ばれます。

左結合の構文

SELECT column_name(s)FROM table1LEFT JOIN table2 ON table1.column_name = table2.column_name;

左外部結合の構文

SELECT column_name(s)FROM table1LEFT OUTER JOIN table2 ON table1.column_name = table2.column_name;

そのため、唯一の違いはouterキーワードであり、これはオプションです。 両方のクエリは同じ結果を返します。

以下の画像は、他の種類の結合の違いを知るのに役立ちます。

画像ソースおよび詳細については、W3Schools Online Web Tutorialsおよびcodeproject.comをご覧ください。


答え 2:

違いはありません。 それらは同じです。

用語の混乱は、外部結合の非対称の可能性に起因する可能性があります。

内部結合では、フレーバーは1つだけです。AJOIN B = B JOIN A.

外部結合には、3つのフレーバーがあります。左側のオペランドのすべての行を取得し、右側のオペランドに一致する行がない場合はヌル拡張することができます(これは左側の外部結合です)。右オペランドの行と、左オペランドに一致する行がない場合はヌル拡張(これは右外部結合です)、または各オペランドのすべての行を取得できます。一致する行がない場合はヌル拡張もう一方のオペランド(これは完全外部結合です)。 OUTER JOIN *とだけ言うと、明確性に欠けます。 代わりに、LEFT OUTER JOIN、RIGHT OUTER JOINまたはFULL OUTER JOINと言います。 また、INNER JOIN(=修飾子なしのJOIN)と比較する場合、あいまいさはないため、言語設計者はOUTERキーワードをオプションにすることにしました。

* OUTER JOINが許容される構文かどうかは覚えていません。 FULL OUTER JOINと同義かもしれません。


答え 3:

左結合と左外部結合に違いはありません。どちらも同じ結合です。詳細が必要な場合は、次のリンクを参照してください。

内部結合|外部結合|左外部結合|右外部結合|結合に関する実際のシナリオ