logo

SQL 結合 (内部結合、左結合、右結合、および完全結合)

SQL結合 操作は、テーブル間の共通フィールドに基づいて、2 つ以上のテーブルのデータまたは行を結合します。

この記事では、について学びます SQLでの結合、 JOIN のタイプ、構文、例について説明します。

SQL結合

SQL JOIN 句は、複数のテーブル間の論理関係を確立することにより、複数のテーブルのデータにクエリを実行したりアクセスしたりするために使用されます。異なるテーブル間で共有される共通キー値を使用して、複数のテーブルのデータに同時にアクセスできます。



複数のテーブルに対して SQL JOIN を使用できます。他の句と組み合わせることもできます。最も一般的な使用法は、JOIN with を使用することです。 WHERE句 データ取得をフィルタリングします。

SQL JOIN の例

以下の 2 つの表を次のように考えてみましょう。

Javaの文字列のlen

学生:

学生テーブル 学生コース :

コーステーブル

これらのテーブルは両方とも 1 つの共通キー (列)、つまり ROLL_NO によって接続されています。

指定された SQL クエリを使用して JOIN 操作を実行できます。

  SELECT   s.roll_no, s.name, s.address, s.phone, s.age, sc.course_id   FROM   Student s   JOIN   StudentCourse sc   ON   s.roll_no = sc.roll_no;>

出力:

ROLL_NO 名前 住所 電話 コース_ID
1 ひどい デリー XXXXXXXXX 18 1
2 練習する ビハール州 XXXXXXXXX 19 2
3 リヤンカ シルグリ XXXXXXXXX 二十 2
4 深い ラムナガル XXXXXXXXX 18 3
5 サプタリ コルカタ XXXXXXXXX 19 1

SQL の JOIN の種類

SQL にはさまざまな種類の結合があります。ユースケースに応じて、さまざまなタイプの SQL JOIN 句を使用できます。頻繁に使用される SQL JOIN タイプは次のとおりです。

  • 内部結合
  • 左結合
  • 右結合
  • 完全結合
  • 自然結合

SQL 内部結合

内部結合 キーワードは、条件が満たされる限り、両方のテーブルからすべての行を選択します。このキーワードは、条件が満たされる、つまり共通フィールドの値が同じになる両方のテーブルのすべての行を結合することによって結果セットを作成します。

構文 :

SQL INNER JOIN の構文は次のとおりです。

  SELECT   table1.column1,table1.column2,table2.column1,....   FROM   table1    INNER JOIN   table2   ON   table1.matching_column = table2.matching_column;>

ここ、

  • 表1 : 最初のテーブル。
  • 表2 : 2番目のテーブル
  • 一致する列 : 両方のテーブルに共通の列。

注記 : INNER JOIN の代わりに JOIN と書くこともできます。 JOIN は INNER JOIN と同じです。

SQL 内部結合の視覚的表現

内部結合の例

INNER JOIN 句の例を見て、その動作を理解しましょう。

このクエリは、さまざまなコースに登録している学生の名前と年齢を表示します。

  SELECT   StudentCourse.COURSE_ID, Student.NAME, Student.AGE   FROM   Student   INNER JOIN   StudentCourse   ON   Student.ROLL_NO = StudentCourse.ROLL_NO;>

出力 :

SQL内部結合の出力例

SQL 左結合

LEFT JOIN は、結合の左側にあるテーブルのすべての行を返し、結合の右側にあるテーブルの行と一致します。右側に一致する行がない行の場合、結果セットには次の内容が含まれます。 ヌル 。 LEFT JOIN は LEFT OUTER JOIN とも呼ばれます。

構文

SQL の LEFT JOIN の構文は次のとおりです。 :

  SELECT   table1.column1,table1.column2,table2.column1,....   FROM   table1    LEFT JOIN   table2   ON   table1.matching_column = table2.matching_column;>

ここ、

  • 表1: 最初のテーブル。
  • 表2 : 2番目のテーブル
  • 一致する列 : 両方のテーブルに共通の列。

注記 : LEFT JOIN の代わりに LEFT OUTER JOIN を使用することもできます。どちらも同じです。

powershell 以下
左結合

左結合の例

LEFT JOIN 句の例を見て、その動作を理解してみましょう

  SELECT   Student.NAME,StudentCourse.COURSE_ID    FROM   Student   LEFT JOIN   StudentCourse    ON   StudentCourse.ROLL_NO = Student.ROLL_NO;>

出力 :

SQL 左結合の出力例

SQL 右結合

右結合 結合の右側にあるテーブルのすべての行と、結合の左側にあるテーブルの一致する行を返します。これは LEFT JOIN と非常によく似ています。左側に一致する行がない行については、結果セットには以下が含まれます ヌル 。 RIGHT JOIN は、RIGHT OUTER JOIN とも呼ばれます。

構文:

SQL の RIGHT JOIN の構文は次のとおりです。

  SELECT   table1.column1,table1.column2,table2.column1,....   FROM   table1    RIGHT JOIN   table2   ON   table1.matching_column = table2.matching_column;>

ここ、

  • 表1 : 最初のテーブル。
  • 表2 : 2番目のテーブル
  • 一致する列 : 両方のテーブルに共通の列。

注記 : も使用できます 右外部結合 RIGHT JOIN の代わりに、どちらも同じです。

SQL右結合の視覚的表現

右結合の例 :

RIGHT JOIN 句の例を見て、その動作を理解してみましょう

  SELECT   Student.NAME,StudentCourse.COURSE_ID    FROM   Student   RIGHT JOIN   StudentCourse    ON   StudentCourse.ROLL_NO = Student.ROLL_NO;>

出力:

右結合の出力例

SQL 完全結合

完全結合 LEFT JOIN と RIGHT JOIN の両方の結果を結合して結果セットを作成します。結果セットには、両方のテーブルのすべての行が含まれます。一致しない行の場合、結果セットには次のものが含まれます。 ヌル 価値観。

Full_Join

構文

SQL FULL JOIN の構文は次のとおりです。

Javaで配列を初期化する方法
  SELECT   table1.column1,table1.column2,table2.column1,....   FROM   table1    FULL JOIN   table2   ON   table1.matching_column = table2.matching_column;>

ここ、

  • 表1 : 最初のテーブル。
  • 表2 : 2番目のテーブル
  • 一致する列 : 両方のテーブルに共通の列。

FULL JOIN の例

FULL JOIN 句の例を見て、その動作を理解してみましょう

  SELECT   Student.NAME,StudentCourse.COURSE_ID    FROM   Student   FULL JOIN   StudentCourse    ON   StudentCourse.ROLL_NO = Student.ROLL_NO;>

出力:

名前

コース_ID

ひどい

1

練習する

2

リヤンカ

2

深い

3

サプタリ

1

ダンラージ

ヌル

ロヒット

ヌル

ニラージ

ヌル

ヌル

4

c ブール値

ヌル

5

ヌル

4

SQL 自然結合 (?)

自然結合では、結合されるテーブル内の共通の列に基づいてテーブルを結合できます。自然結合は、同じ名前とデータ型の列を持つ共通の列の値を照合することによってすべての行を返します。その列は両方のテーブルに存在する必要があります。

両方のテーブルには、同じ列名と同じデータ型を持つ共通の列が少なくとも 1 つ必要です。

2 つのテーブルは次を使用して結合されます。 クロス結合

DBMS は、同じ名前とデータ型を持つ共通の列を探します。共通の列にまったく同じ値を持つタプルが結果に保持されます。

自然結合の例:

以下の 2 つのテーブル (従業員と部門) を見てください。

従業員

emp_id 従業員名 部門ID
1 ラム 10
2 ジョン 30
3 ボブ 50

部門

部門ID 部署名
10 それ
30 人事部
40 TIS

問題 : すべての従業員とそれぞれの部門を検索します。

ソリューションクエリ : (従業員) ? (部門)

emp_id 従業員名 部門ID 部門ID 部署名
1 ラム 10 10 それ
2 ジョン 30 30 人事部
従業員データ 部門データ

追加のリソース

SQL JOIN の詳細については、ビデオを視聴したり、記事を読んだりしてください。

左結合 (ビデオ)
右結合 (ビデオ)
完全な結合 (ビデオ)
SQL | JOIN (デカルト結合、自己結合)