複数テーブルを内結合してデータ取得

まず、データベースにテーブルを定義します。 (方法はクイックスタートのステップ2を参照下さい)

以下のようなテーブル ItemInfo を定義します。 (例「単純な単一テーブルからのデータ読み込み」と同様です。)

以下のデータをデータベース管理ツールであらかじめ挿入しておきます。

以下のようなテーブル OrderInfo を定義します。

以下のデータをデータベース管理ツールであらかじめ挿入しておきます。

今回、何某かの注文とその商品コードが別のテーブルで管理されている、という状況を想定し、 ItemCodeの値を使って2つのテーブルを結合(内結合)して取得するサンプルを作成します。

このテーブル情報をインポートします。(方法はクイックスタートのステップ3を参照下さい)

続いて、関数定義を行います。(方法はクイックスタートのステップ4を参照下さい)
結合する場合、片方のテーブルが基準になります。 基準にする方のテーブルに相当するデータクラス名を指定して関数を作成します。 この例では OrderInfo を指定します。
※ SQL的にはInner Joinはどちらのテーブルも対等ですが本ツールでは片方を基準にします。

追加後、関数一覧に戻ります。 ここで「Sync」をクリックして取得対象になるフィールドを指定します。

次のページで対象テーブルを選択します。 最初は基準テーブルのOrderInfoのみが選択されていますが、今回はItemInfoの情報も取得したいのでItemInfoにチェックを入れます。

チェックを入れたのち、Nextボタンを押します。

以下の画面が表示されますので、取得したいフィールドのチェックボックスをONにします。

この例ではOrderInfo全てとItemInfoのItemName/ItemDescriptionをチェックします。 「UPDATE」ボタンを押します。

UPDATEボタンを押すと、いくつかWARNINGが表示されています。

メインターゲットのカラムに関してはテーブル情報から自動的に割り当てられます。
それ以外のテーブルのカラムに関しては 「テーブル名 + フィールド名」を繋げたフィールドに値が保存されますので、該当するフィールドをデータクラスに定義する必要があります。 「Add New Field」リンクを使って該当フィールドを作成します。作成後、確認のためにもう一度この画面でUPDATEボタンを押してWARNINGが消えていることを確認して下さい。

更新を確認し、関数一覧ページに戻ります。

続いて、取り出すデータを指定するための条件を追加します。関数一覧にて「Input Aid」をクリックします。

次のページで対象テーブルを選択します。 対象テーブルが既に選択されていますので、何も変更せず「Next」を押します。

次のページが表示されます。 初期状態ではデータベース・テーブルにIndexが指定されているものが表示されますが、この例ではIndexを指定していませんので「Show All pattern」をクリックして全てのパターンを表示します。

以下のページが表示されます。

画面左が結合の左辺側テーブル、中央が結合先テーブル、右側には既に存在している条件を参考に表示しています。

初期状態では表示が多すぎるのでフィルタを使って表示を絞り込みます。

Parameter Typeカラムを基に以下3つの入力支援が行えますが、今回はフィールドを指定してテーブルを結合しますので、Parameter Type列で「anotherfield」のみを表示させます。 以下図の「anotherfield」セルにて「Show only This」をクリックします。

  1. 値指定
  2. 固定値指定
  3. フィールド指定でテーブル結合

OrderInfoテーブルのみ表示します。以下図にあるように Table Name列の「OrderInfo」セルで「Show only This」をクリックします。

ItemCodeカラムのみ表示するため、Column NameのItemCodeセルで「Show only This」をクリックします。

ここまで絞り込めば簡単に選択できます。 以下図の最上位行で「Add」をクリックします。

以下の画面が表示されますので、そのまま「追加」を押します。

関数一覧ページから「View Where」をクリックして定義を確認します。

以下の通り、仕様書のように条件が確認できます。

次に、ビルドします。(方法はクイックスタートのステップ5を参照下さい)

ビルド後、関数一覧ページに戻るとEndpointが作成されていますので「View Endpoint」をクリックします。

以下のようなエンドポイントが表示されます。

テスト用フォームの「Do Test via Server by PHP」ボタンをクリックします。 2つ結果が表示されますが表示フォーマットが違うだけで内容は同じものです。

内容を見てみると、OrderInfoの内容とItemInfoがItemCodeを使って結合されていることがわかります。


戻る

ログイン当サイトのユーザ名(ID)でログイン
クイックログイン:Facebookのアカウントで即時ログイン(ログイン情報保持オプション:ON) / 新規登録


お問い合わせ

© 2016-2024 Matsuesoft Corporation