クエリでは異なるテーブルのフィールドを使用できます。複数のテーブルのフィールドを使用するときは、結果セットにデータをどのように表示するかを決定するため、これらのテーブルのデータ間のリレーションシップを設定します。
このようなテーブル間のリレーションシップは、クエリデザイナで「内部結合」、「左外部結合」、「右外部結合」といったSQL結合を使用して設定することができます。
- 内部結合(単純な結合) - 内部結合は、Table1の行をTable2の行と一致させます。これにより、両方のテーブルと互いに関連するレコードが取得可能になります。内部結合はTable1とTable2の両方に一致するデータのセットを生成します。
SQL内部結合の構文:
SELECT columns
FROM table1
INNER JOIN table2
ON table1.column = table2.column;
説明図
SQL内部結合は、table1とtable2の交差部分のレコードを返します。
- 左外部結合(左結合) - 左外部結合を使用すると、左右のテーブルの両方に一致する行に加えて、左側のテーブル(table1)のすべての行も選択できます。つまり、table2の行はtable1と交差するものだけが結果セットに表示されます。
SQL左外部結合の構文:
SELECT columns
FROM table1
LEFT [OUTER] JOIN table2
ON table1.column = table2.column;
説明図
SQL左外部結合は、table1のレコードと、table1と交差するtable2のレコードを返します。
- 右外部結合(右結合) - 右外部結合を使用すると、左右のテーブルの両方に一致する行に加えて、右側のテーブル(table2)のすべての行も選択できます。つまり、table1の行はtable2と交差するものだけが結果セットに表示されます。
SQL右外部結合の構文:
SELECT columns
FROM table1
RIGHT [OUTER] JOIN table2
ON table1.column = table2.column;
説明図
SQL右外部結合は、table2のレコードと、table2と交差するtable1のレコードを返します。
[テーブルのリレーション]ダイアログ
[テーブルのリレーション]ダイアログでは、少なくとも1つの共通フィールドを持つ2つの異なるテーブル間のリレーションシップを設定することができます。
[テーブルのリレーション]ダイアログにアクセスするには、以下の手順に従います。
- クエリデザイナで、[データベースビュー]からテーブルのフィールドをドラッグして[選択したフィールド]パネルにドロップします。
- [データベースビュー]から別のテーブルの別のフィールドを[選択したフィールド]パネルに追加します。これら2つのテーブルの少なくとも1つのフィールドが一致している(すなわち、2番目のテーブルに外部キーが存在する)必要があります。
- 手順2でフィールドを追加すると、[テーブルのリレーション]ダイアログが自動的に画面にポップアップします。
テーブル間のリレーションシップを設定した後は、[テーブルとリレーションシップ]パネルの[リレーション]ボタンから[テーブルのリレーション]ダイアログにアクセスすることができます。
テーブルのリレーション
オプション |
説明 |
結合の種類 |
「内部結合」、「左外部結合」、「右外部結合」から適切な結合の種類を選択することができます。
例: 上の図では[内部結合]タブが強調表示されています。 |
<テーブル名>のフィールド |
テーブル間で共通している(すなわち、外部キー名が2番目のテーブルに存在する)フィールドの名前が表示されます。
例: 上の図では、"Products"のフィールドは「Category ID」になっています。
|
リレーションするテーブル |
リレーションシップが設定されているテーブルの名前が表示されます。
例: 上の図では'Categories'テーブルが表示されています。 |
リレーションするテーブルのフィールド |
リレーションシップが設定されているテーブルのフィールドの名前が表示されます。
例: 上の図では、「Category ID」はCategoriesテーブルのフィールドです。 |
削除 |
[リレーションするテーブルのフィールド]の左横にあるボタン。現在追加されているリレーションを削除します。 |
リレーションの追加 |
テーブルに別のリレーションを追加することができます。 |
キャンセル |
[テーブルのリレーション]ウィンドウを閉じます。 |
OK |
テーブル間のリレーションシップを[SQL]タブにSQLクエリとして保存します。 |
関連トピック