SQLのJOINとUNIONの違い

著者: Laura McKinney
作成日: 2 4月 2021
更新日: 1 5月 2024
Anonim
SQL初心者のためのテーブル結合:INNER JOINとOUTER JOINの違い
ビデオ: SQL初心者のためのテーブル結合:INNER JOINとOUTER JOINの違い

コンテンツ


JOINとUNIONはSQLの句であり、2つ以上のリレーションのデータを結合するために使用されます。ただし、データと取得結果の形式を組み合わせる方法は異なります。の 参加する 句は2つのリレーションの属性を組み合わせて結果のタプルを形成しますが、 連合 句は、2つのクエリの結果を結合します。以下に示す比較チャートを使用して、JOINとUNIONの違いについて説明します。

  1. 比較表
  2. 定義
  3. 主な違い
  4. 結論

比較表

比較の根拠参加する連合
ベーシック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を取ります。

  1. 2つのリレーションには同じ数の属性が必要です。
  2. 対応する属性のドメインは同じでなければなりません。

UNIONには2つのタイプがあります 連合 そして UNION ALL。 UNIONを使用して取得した結果には、重複は含まれません。一方、UNION ALLを使用して得られた結果は重複を保持します。


  1. JOINとUNIONの主な違いは、JOINが2つのリレーションのタプルを結合し、結果のタプルに両方のリレーションの属性が含まれることです。一方、UNIONは2つのSELECTクエリの結果を結合します。
  2. JOIN句は、関係する2つのリレーションに両方で共通の属性が少なくとも1つある場合にのみ適用できます。一方、2つのリレーションが同じ数の属性を持ち、対応する属性のドメインが同じ場合、UNIONは適用可能です。
  3. JOIN INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOINの4つのタイプがあります。ただし、UNIONにはUNIONとUNION ALLの2つのタイプがあります。
  4. JOINでは、両方のリレーションの属性が含まれるため、結果のタプルのサイズが大きくなります。一方、UNIONでは、クエリに存在する両方のリレーションからのタプルが結果に含まれるため、タプルの数が増加します。

結論:

両方のデータ結合操作は、異なる状況で使用されます。 JOINは、少なくとも1つの共通の属性を持つ2つのリレーションの属性を結合する場合に使用されます。 UNIONは、クエリに存在する2つのリレーションのタプルを結合するときに使用されます。