リレーションを深掘りする
Ref型・子テーブル参照・SELECT関数の基礎
AppSheetで実務アプリを作るとき、 重要になるのが 「データ同士をどうつなぐか」 です。 このステップでは、 親子関係の基本から、 [Item ID].[Quantity] のような参照記法、 そして SELECT() の考え方まで押さえます。
ステップ6:データ同士をつないで、必要な情報を取り出せるようになる
このページでは、 備品マスタ と 貸出履歴 の関係を例に、 Ref 型でつなぐ方法と、 つないだ先の値を取り出す考え方を学びます。
- Ref 型の意味を理解する
- 子テーブルから親テーブルの値を呼べる
- SELECT() の役割を理解する
- Ref と SELECT の違いを区別できる
ステップ6-1:Ref型の基本を理解する
Ref 型 は、 「この行は、別テーブルのどの行を指しているのか」を示すための型です。 AppSheetでは、これを使うことで 親子関係 を作れます。
貸出履歴テーブルに [Item ID] という列を作り、 その型を Ref → 備品マスタ に設定します。
親子関係のイメージ
ステップ6-2:子テーブルから親テーブルの値を呼ぶ
Ref 型が設定されると、 子テーブル側から親テーブルの値を ドット記法 で呼び出せるようになります。
[Item ID].[Item Name]、
[Item ID].[Category]、
[Item ID].[Quantity]
など
[Item ID].[Quantity] の読み方
[Item ID].[Quantity] は「EQ-001 が指す親行の Quantity」を意味します。
ステップ6-3:SELECT関数とは?
SELECT() は、 あるテーブルの中から 条件に合う値を集める ときに使う関数です。
Borrow Logs[User],
[Item ID] = [_THISROW].[Item ID]
)
SELECT() のイメージ
ステップ6-4:Ref と SELECT はどう使い分ける?
どちらも「別のデータを参照する」ために使いますが、 得意なことが違います。
1つの親レコードから値を取りたい
すでに Ref でつながっている相手から、 名前や数量などの列をシンプルに取り出したいときに向いています。
条件に合う複数の値を拾いたい
関連する履歴を一覧で集めたい、特定条件のレコードを探したいときに向いています。
- ・子テーブルから親テーブルの「1つの値」を取りたい
- ・Item Name や Quantity などを呼びたい
- ・式をシンプルに書きたい
- ・条件に合う複数行を拾いたい
- ・関連履歴をまとめたい
- ・件数確認や存在チェックもしたい
「すでに Ref でつながっている1件の親から取りたい」なら [Ref列].[列名]、 「条件に合う複数件を探したい」なら SELECT() と考えると整理しやすいです。