複数テーブルを左外部結合してデータ取得

ほとんど「複数テーブルを内結合してデータ取得」と同様です。Where条件でLeft Outer Joinを指定します。

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

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

以下のデータをデータベース管理ツールであらかじめ挿入しておきます。 (例「複数テーブルを内結合してデータ取得」と同様です。)

以下のようなテーブル OrderInfo を定義します。 (例「複数テーブルを内結合してデータ取得」と同様です。)

以下のデータをデータベース管理ツールであらかじめ挿入しておきます。 (例「複数テーブルを内結合してデータ取得」とは最後の行が違います)

今回、何某かの注文とその商品コードが別のテーブルで管理されている、という状況を想定していますが、OrderInfoテーブルに含まれているItemCode: ghi の情報はItemInfoテーブルに存在しません。

この場合、先の例 「複数テーブルを内結合してデータ取得」 では最後の行が出てこなくて「オーダーが見つからない」状態になってしまいます。というのも、Inner Joinは両方のテーブルに存在する情報を結合するからです。
一方、今回の例では「オーダーは存在するが、該当するアイテムが見つからない」となります。 こちらが自然な動きです。左外部結合をすることで対応するItemInfoがなくてもOrderInfoを取得できるようになります。

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

次に、関数定義を行います。 (例「複数テーブルを内結合してデータ取得」と同様です。)

追加後、関数一覧に戻り、 「Sync」をクリックして取得対象になるフィールドを指定します。 (例「複数テーブルを内結合してデータ取得」と同様ですので詳細は省略します)

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

(例「複数テーブルを内結合してデータ取得」とほとんど同一ですのでいくつかのステップを省略します。)

以下図の最上位行で「Add」をクリックします。

以下の画面が表示されますので、Join種類を Left Outer Join に選択し、「追加」を押します。

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

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

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

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

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

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

内容を見てみると、基本的は例「複数テーブルを内結合してデータ取得」と同様にOrderInfoの内容とItemInfoがItemCodeを使って結合されていますが、該当ItemInfoが存在しないItemCode: "ghi" に対してはnullが設定されています。


戻る

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


お問い合わせ

© 2016-2024 Matsuesoft Corporation