ActiveReports for .NET 18.0J
テーブルとリレーション
ActiveReportsユーザーガイド > 概念 > クエリデザイナ > クエリデザイナでのクエリの作成 > テーブルとリレーション

クエリでは異なるテーブルのフィールドを使用できます。複数のテーブルのフィールドを使用するときは、結果セットにデータをどのように表示するかを決定するため、これらのテーブルのデータ間のリレーションシップを設定します。

このようなテーブル間のリレーションシップは、クエリデザイナで「内部結合」、「左外部結合」、「右外部結合」といったSQL結合を使用して設定することができます。

  1. 内部結合(単純な結合) - 内部結合は、Table1の行をTable2の行と一致させます。これにより、両方のテーブルと互いに関連するレコードが取得可能になります。内部結合はTable1とTable2の両方に一致するデータのセットを生成します。

    SQL内部結合の構文:
    SELECT columns
    FROM table1
    INNER JOIN table2
    ON table1.column = table2.column;

    説明図

    SQL内部結合は、table1とtable2の交差部分のレコードを返します。
  2. 左外部結合(左結合) - 左外部結合を使用すると、左右のテーブルの両方に一致する行に加えて、左側のテーブル(table1)のすべての行も選択できます。つまり、table2の行はtable1と交差するものだけが結果セットに表示されます。

    SQL左外部結合の構文:
    SELECT columns
    FROM table1
    LEFT [OUTER] JOIN table2
    ON table1.column = table2.column;

    説明図

    SQL左外部結合は、table1のレコードと、table1と交差するtable2のレコードを返します。
  3. 右外部結合(右結合) - 右外部結合を使用すると、左右のテーブルの両方に一致する行に加えて、右側のテーブル(table2)のすべての行も選択できます。つまり、table1の行はtable2と交差するものだけが結果セットに表示されます。

    SQL右外部結合の構文:
    SELECT columns
    FROM table1
    RIGHT [OUTER] JOIN table2
    ON table1.column = table2.column;

    説明図

    SQL右外部結合は、table2のレコードと、table2と交差するtable1のレコードを返します。

[テーブルのリレーション]ダイアログ

[テーブルのリレーション]ダイアログでは、少なくとも1つの共通フィールドを持つ2つの異なるテーブル間のリレーションシップを設定することができます。

[テーブルのリレーション]ダイアログにアクセスするには、以下の手順に従います。

  1. クエリデザイナで、[データベースビュー]からテーブルのフィールドをドラッグして[選択したフィールド]パネルにドロップします。
  2. [データベースビュー]から別のテーブルの別のフィールドを[選択したフィールド]パネルに追加します。これら2つのテーブルの少なくとも1つのフィールドが一致している(すなわち、2番目のテーブルに外部キーが存在する)必要があります。
  3. 手順2でフィールドを追加すると、[テーブルのリレーション]ダイアログが自動的に画面にポップアップします。

テーブル間のリレーションシップを設定した後は、[テーブルとリレーションシップ]パネルの[リレーション]ボタンから[テーブルのリレーション]ダイアログにアクセスすることができます。

テーブルのリレーション

テーブルのリレーション

オプション 説明
結合の種類 「内部結合」「左外部結合」「右外部結合」から適切な結合の種類を選択することができます。
例: 上の図では[内部結合]タブが強調表示されています。
<テーブル名>のフィールド

テーブル間で共通している(すなわち、外部キー名が2番目のテーブルに存在する)フィールドの名前が表示されます。
例: 上の図では、"Products"のフィールドは「Category ID」になっています。

リレーションするテーブル リレーションシップが設定されているテーブルの名前が表示されます。
例: 上の図では'Categories'テーブルが表示されています。
リレーションするテーブルのフィールド リレーションシップが設定されているテーブルのフィールドの名前が表示されます。
例: 上の図では、「Category ID」はCategoriesテーブルのフィールドです。
削除 [リレーションするテーブルのフィールド]の左横にあるボタン。現在追加されているリレーションを削除します。
リレーションの追加 テーブルに別のリレーションを追加することができます。
キャンセル [テーブルのリレーション]ウィンドウを閉じます。
OK テーブル間のリレーションシップを[SQL]タブにSQLクエリとして保存します。
関連トピック