複数テーブルを結合して表示する

テーブルからデータを取得する場合、複数のテーブルを組み合わせてデータを取得することができます。
複数のテーブルを組み合わせることを「結合」といい、結合の種類によって色々な組み合わせでデータを取得できます。
結合の種類には様々なものがありますが、CELFの標準アクションでは内部結合、および、左外部結合によってデータを取得することができます。
[内部結合]
 内部結合では、取得元となる2つのテーブルにおいて、結合条件を満たすデータのみ取得します。
 以下の例では、得意先コードの一致という結合条件で内部結合しています。
 そのため、得意先コードが片方のテーブルのみ存在するデータ(T002、T004)は取得しません。
../../../../_images/img_142.png
[左外部結合]
 左外部結合では、取得元となる2つのテーブルにおいて、結合条件を満たすデータと左側のテーブルにのみ存在するデータを取得します。
 以下の例では、得意先コードの一致という結合条件で左外部結合しています。
 そのため、得意コードが左側のテーブル(受注テーブル)のみ存在するデータ(T002)は取得しますが、右側のテーブル(得意先マスタ)にのみ存在するデータ(T004)は取得しません。
../../../../_images/img_152.png

ここでは、上記で説明したような複数テーブルを結合してデータを取得する方法を説明します。

結合条件部から結合条件を指定する

「テーブルから複数件取得する」アクション、および、「テーブルからデータの件数を取得する」アクションでは、結合条件部にて条件を指定することで内部結合、または、左外部結合したデータを取得できます。

  1. 「アクションセット設定」ダイアログを開きます。
  2. 「制御」タブから「テーブルから複数件取得する」アクションをエディットエリアに設定します。
  3. 「テーブル選択」ダイアログを開き、「複数のテーブルを選択する」をチェックします。
../../../../_images/img_0124.png
  1. 取得元となるテーブルを複数チェックし、「OK」ボタンをクリックします。
../../../../_images/img_0223.png
  テーブルを複数選択すると、結合条件部が表示されます。
../../../../_images/img_0317.png
  1. 「テーブル間の結合条件」リンクボタンをクリックします。
../../../../_images/img_0416.png
  1. 「結合条件編集」ダイアログにて「基準テーブル」を選択し、「結合条件を追加」ボタンをクリックします。
../../../../_images/img_0515.png
   [1] 基準テーブル
     テーブル結合において、基準となるテーブル(駆動表、外部表)を指定します。

ちなみに

「基準テーブル」は、「テーブル選択」ダイアログにて選択したテーブルから選択することができます。

  1. 「テーブル結合条件編集」ダイアログにて、「結合するテーブル」「結合の種類」、および、結合条件を指定し、「OK」ボタンをクリックします。
../../../../_images/img_0611.png
   [1] 結合するテーブル
     「基準テーブル」に対して結合するテーブル(内部表)を指定します。
   [2] 結合の種類
     テーブル結合によって取得しようとしているデータによって、「左外部結合」、または、「内部結合」のいずれかを指定します。
   [3] 結合条件
     「結合するテーブル」で指定したテーブルを結合するための条件を指定します。
  「OK」ボタンをクリック後、「結合条件編集」ダイアログにてテーブル結合条件が追加されたことを確認できます。
../../../../_images/img_0710.png

ちなみに

  • 「結合するテーブル」は、「テーブル選択」ダイアログにて選択したテーブルから選択することができます。
  • 「結合の種類」にて左外部結合を選択した場合、結合条件を満たすデータ、および、「基準テーブル」のみ存在するデータを取得します。「結合するテーブル」のみ存在するデータは取得しません。
  • 「結合の種類」にて内部結合を選択した場合、結合条件を満たすデータのみ取得します。「基準テーブル」のみ存在するデータや「結合するテーブル」のみ存在するデータは取得しません。
../../../../_images/img_162.png
  • 左外部結合ではどのテーブルを「基準テーブル」にするかで結果が変わりますが、内部結合では結合条件に一致するデータのみ取得するため、どのテーブルを「基準テーブル」に指定しても結果は変わりません。
  • 結合条件に内部結合を指定した場合は、検索条件部で結合条件を指定する場合(下記参照)と同じ実行結果となります。

注意

「結合するテーブル」には、基準テーブルや、他の結合条件における結合テーブルと同じテーブルは選択することができません。

  1. 結合したいテーブルの分だけ結合条件を追加した後、「結合条件編集」ダイアログにて「OK」ボタンをクリックします。
../../../../_images/img_087.png
  「OK」ボタンをクリック後、アクションに結合条件が設定されたことを確認できます。
../../../../_images/img_132.png

ちなみに

  • 「テーブル結合条件編集」ボタンをクリックすると、設定した条件を変更することができます。
../../../../_images/img_097.png
  • テーブル結合条件の右にあるごみ箱アイコンをクリックすることで、テーブル結合条件を削除することができます。
  1. アクションセットを保存します。

注意

結合条件部にて条件を指定している場合は、最初に選択したテーブルのうち、基準テーブルや結合テーブルとして選択されていないテーブルが存在すると、アクションセット保存時にエラーとなります。

ちなみに

「テーブルからデータの件数を取得する」アクションでも同様に、結合条件部から結合条件を指定して複数テーブルのデータを取得することができます。

検索条件部から結合条件を指定する

データ取得系アクションでは、検索条件部にて結合条件を指定することで、内部結合したデータを取得することができます。

  1. 「アクションセット設定」ダイアログを開きます。
  2. 「制御」タブから「テーブルから複数件取得する」アクションをエディットエリアに設定します。
  3. 「テーブル選択」ダイアログを開き、「複数のテーブルを選択する」をチェックします。
../../../../_images/img_0124.png
  1. 取得元となるテーブルを複数チェックし、「OK」ボタンをクリックします。
../../../../_images/img_0223.png
  1. 「検索条件」リンクボタンをクリックします。
../../../../_images/img_106.png
  1. 「条件編集」ダイアログにて、テーブルの結合条件を指定します。
../../../../_images/img_116.png

ちなみに

  • 歯車アイコンをクリックして「テーブルのカラムを選択する」をチェックすることで、右側でカラムが指定できるようになります。
../../../../_images/img_125.png
  • 左右ともにテーブルのカラムを使った条件を追加することで、テーブルの結合条件を指定することができます。
  • 検索条件部で結合条件を指定した場合は、結合条件部にて内部結合で結合条件を指定した場合(上記参照)と同じ実行結果となります。

参考

検索条件の指定方法については、テーブルからデータを1件取得する > 検索条件を指定する を参照してください。

  1. アクションセットを保存します。

ちなみに

「テーブルからデータの件数を取得する」、および、「テーブルから1件取得する」アクションにおいても同様に、検索条件部から結合条件を指定して複数テーブルのデータを取得することができます。

参考


※動画内の画面は最新バージョンの CELF とは異なる場合があります。
※動画に音声はついていません。

重要

テーブルからデータを取得するためには、ユーザーに以下の権限が必要です。

  • アプリ作成者

また、アプリ作成者についてはテーブルに対する以下の権限が必要です。

  • 参照

テーブルの権限設定については テーブルの権限を設定する を参照してください。

../../../../_images/celf_help_mascot.png

関連キーワード

select、where、join