English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
このチュートリアルでは、二つのテーブルを結合して組み合わせデータを取得する方法を学びます。
今までに見たすべてのクエリは一つのテーブルに集中していますが、現実世界では、一度に二つまたは三つのテーブルをクエリして統合された結果セットを取得することがよくあります。これは技術的に「結合」と呼ばれますが、これはテーブル間の公共フィールド(外部キー)異なるテーブルを結合して新しいデータビューを作成します。
この点を理解しやすくするために、以下を見てみましょうemployeesおよびdepartmentsテーブルです。ここでは、employeesテーブルのdept id列がdepartmentsテーブルの外部キーです。したがって、これらのテーブルを結合して組み合わせデータを取得できます。
+--------+--------------+------------+---------+ | emp_id | emp_name | hire_date | dept_id | +--------+--------------+------------+---------+ | 1 | Ethan Hunt | 2001-05-01 | 4 | | 2 | Tony Montana | 2002-07-15 | 1 | | 3 | Sarah Connor | 2005-10-18 | 5 | | 4 | Rick Deckard | 2007-01-03 | 3 | | 5 | Martin Blank | 2008-06-24 | NULL | +--------+--------------+------------+---------+ | +---------+------------------+ | dept_id | dept_name | +---------+------------------+ | 1 | Administration | | 2 | Customer Service | | 3 | Finance | | 4 | Human Resources | | 5 | Sales | +---------+------------------+ | |
テーブル: employees | テーブル: departments |
注意:テーブルを結合するためには、結合する列のデータが一致する必要がありますが、列名が一致する必要はありません。
テーブルを結合する際には、クエリで作成される結合の種類が結果セットに表示される行に影響を与えます。以下の種類の結合を作成できます:
結合は、両方の結合テーブルに一致する行のみを返します。例えば、employeesとdepartmentsテーブルが結合され、各従業員の部署名を表示する結果セットを作成します。内部結合では、部署情報がない従業員は結果セットに含まれません。また、従業員がいない部署も結果セットに含まれません。
次の章では、以下の内容について学びます。内部結合のの詳細情報。
外部結合は内部結合の拡張です。外部結合が結合テーブルに関連する行がない場合でも、外部結合はこれらの行を返します。外部結合には、左結合(left join),右結合(right join)および完全結合(full join)
次の章で、外部結合のこれらのバリエーションについて詳しく説明します。
の十字結合は、結合条件がない結合です。一つのテーブルの各行は、もう一つのテーブルの各行と合わさります。このような結果セットは、カールス・ダイヤモンドまたはクロス積と呼ばれます。例えば、employeesおよびdepartmentsテーブル間の十字結合は、各可能な従業員/部門の組み合わせには一行があります。
次の章では、以下について学びます十字結合の詳細情報。