SQLのJOINとUNIONの違い
コンテンツ
JOINとUNIONはSQLの句であり、2つ以上のリレーションのデータを結合するために使用されます。ただし、データと取得結果の形式を組み合わせる方法は異なります。の 参加する 句は2つのリレーションの属性を組み合わせて結果のタプルを形成しますが、 連合 句は、2つのクエリの結果を結合します。以下に示す比較チャートを使用して、JOINとUNIONの違いについて説明します。
- 比較表
- 定義
- 主な違い
- 結論
比較表
比較の根拠 | 参加する | 連合 |
---|---|---|
ベーシック | JOINは、いくつかの共通のフィールドまたは属性を共有する2つの異なるリレーションに存在するタプルの属性を組み合わせます。 | UNIONは、クエリに存在する関係のタプルを結合します。 |
調子 | JOINは、関係する2つの関係に少なくとも1つの共通属性がある場合に適用できます。 | UNIONは、クエリに含まれる列の数が同じで、対応する属性が同じドメインを持つ場合に適用できます。 |
タイプ | インナー、フル(アウター)、左ジョイン、右ジョイン。 | UNIONおよびUNION ALL。 |
効果 | 結果のタプルの長さは、関係するリレーションのタプルの長さに比べて長くなります。 | 結果のタプルの数は、クエリに含まれる各リレーションに存在するタプルの数に比べて多くなります。 |
図 |
|
JOINの定義
参加する SQLの句は、2つのリレーションまたはテーブルのタプルを組み合わせて、タプルサイズを長くします。結果のタプルには、両方のリレーションの属性が含まれます。属性は、それらの間の共通の属性に基づいて結合されます。 SQLのさまざまなタイプのJOINは次のとおりです。 インナージョイン、レフトジョイン、ライトジョイン、フルアウタージョイン。
インナージョイン 両方のテーブルに共通の属性がある限り、両方のテーブルのタプルを結合します。 左から参加 左側のテーブルのすべてのタプルと、右側のテーブルの一致するタプルになります。 正しい参加 結果として、右側のテーブルからすべてのタプルが生成され、左側のテーブルから一致するタプルのみが生成されます。 フルアウタージョイン 一致する属性があるかどうかにかかわらず、両方のテーブルのすべてのタプルが生成されます。
INNER JOINはJOINと同じです。 INNERキーワードを削除し、JOINを使用してINNER JOINを実行することもできます。
UNIONの定義
UNIONはSQLの集合演算です。 UNONは、2つのクエリの結果を結合します。 UNIONの結果には、クエリに存在する両方のリレーションのタプルが含まれます。満たさなければならない条件は、2つの関係のUNIONを取ります。
- 2つのリレーションには同じ数の属性が必要です。
- 対応する属性のドメインは同じでなければなりません。
UNIONには2つのタイプがあります 連合 そして UNION ALL。 UNIONを使用して取得した結果には、重複は含まれません。一方、UNION ALLを使用して得られた結果は重複を保持します。
- JOINとUNIONの主な違いは、JOINが2つのリレーションのタプルを結合し、結果のタプルに両方のリレーションの属性が含まれることです。一方、UNIONは2つのSELECTクエリの結果を結合します。
- JOIN句は、関係する2つのリレーションに両方で共通の属性が少なくとも1つある場合にのみ適用できます。一方、2つのリレーションが同じ数の属性を持ち、対応する属性のドメインが同じ場合、UNIONは適用可能です。
- JOIN INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOINの4つのタイプがあります。ただし、UNIONにはUNIONとUNION ALLの2つのタイプがあります。
- JOINでは、両方のリレーションの属性が含まれるため、結果のタプルのサイズが大きくなります。一方、UNIONでは、クエリに存在する両方のリレーションからのタプルが結果に含まれるため、タプルの数が増加します。
結論:
両方のデータ結合操作は、異なる状況で使用されます。 JOINは、少なくとも1つの共通の属性を持つ2つのリレーションの属性を結合する場合に使用されます。 UNIONは、クエリに存在する2つのリレーションのタプルを結合するときに使用されます。