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 と同じです。

内部結合の例
INNER JOIN 句の例を見て、その動作を理解しましょう。
このクエリは、さまざまなコースに登録している学生の名前と年齢を表示します。
SELECT StudentCourse.COURSE_ID, Student.NAME, Student.AGE FROM Student INNER JOIN StudentCourse ON Student.ROLL_NO = StudentCourse.ROLL_NO;>
出力 :

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 右結合
右結合 結合の右側にあるテーブルのすべての行と、結合の左側にあるテーブルの一致する行を返します。これは 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 の代わりに、どちらも同じです。

右結合の例 :
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 の両方の結果を結合して結果セットを作成します。結果セットには、両方のテーブルのすべての行が含まれます。一致しない行の場合、結果セットには次のものが含まれます。 ヌル 価値観。
構文
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 (デカルト結合、自己結合)