式の間接参照はもう一方のテーブルに含まれる特定の行から列の値を取得します。式の間接参照はテーブル間の参照を使用し、このテーブルの Ref 型の列の値を使用して、別のテーブルの特定の行を見つけ、その行のいずれかの列から値を取得します。
以降のセクションでは、式の間接参照について詳しく説明します。
使ってみる
動画を見る
以下の動画を視聴して、式の間接参照と LOOKUP() 関数を使用して複数テーブルから取得したデータを結合する方法をご確認ください。
Quick Tip Friday - Joining Multiple Tables
サンプルアプリをチェック
一般的な間接参照式は、Order Deliveries サンプルアプリで確認できます。
Orders テーブルで、Customer ID 列は Customers テーブルへの参照です。Orders テーブルは、式の間接参照、[Customer ID].[Email] を使用して、お客様 ID に基づいて Customers テーブルからお客様のメールを取得します。
この式の間接参照は次のように考えることができます。
Customersソーステーブルで、現在の行のCustomer ID列と一致するキー列値を持つ行を見つけます。- ソーステーブルの該当行から、
Email列の値を取得します。
この手順を繰り返して、Phone 列と Address 列の値を取得します。
列値の間接参照
式の間接参照のフォームは次のとおりです。
[ref-column].[value-column]
ref-column はこのテーブルの Ref 型の列名、value-column は他のテーブルの列名です。
Ref 型の列の構成によって、参照先の行が存在するテーブルがわかります。
Ref 列の値は、Ref 列のソーステーブルの行のキー列の値でなければなりません。
逆参照リスト
Ref の基本タイプである List 型や EnumList 型の列値は、個々の参照を間接参照することで新しい値のリストを作成します。このオペレーションは逆参照リストと呼ばれます。
逆参照リストは Ref リストの列名(Related Orders など)と必要な列値の列名(Order Date など)をそれぞれ角かっこ([, ])で囲み、並べて記述することで実行されます。[Related Orders][Order Date] のようになります
Related Orders 列値のリストで指定された列から Order Date 列値のリストが表示されます。
逆参照リストを構築するもご覧ください。
連鎖されている式の間接参照
間接参照を間接参照できます。
たとえば、Customer 行、Order 行の子行、Order Detail 行の孫行からなる 3 階層があるとします。Order Detail 行は Order 行への参照が含まれます。Order 行は Customer 行への参照が含まれます。
間接参照式チェーンにより、Order Detail 行から、Customer 行の列の値に直接アクセスできます。つまり、Order Detail 行から Order 行へ間接参照でき、Order 行から Customer 行へ単一の式で間接参照できます。
[Order Id].[Customer Name].[Email]