実践編 / 開発実践編 / Step6
Step 6 / 7

リレーションを深掘りする
Ref型・子テーブル参照・SELECT関数の基礎

AppSheetで実務アプリを作るとき、 重要になるのが 「データ同士をどうつなぐか」 です。 このステップでは、 親子関係の基本から、 [Item ID].[Quantity] のような参照記法、 そして SELECT() の考え方まで押さえます。

Tutorial Mission

ステップ6:データ同士をつないで、必要な情報を取り出せるようになる

このページでは、 備品マスタ貸出履歴 の関係を例に、 Ref 型でつなぐ方法と、 つないだ先の値を取り出す考え方を学びます。

このページのゴール
  • Ref 型の意味を理解する
  • 子テーブルから親テーブルの値を呼べる
  • SELECT() の役割を理解する
  • Ref と SELECT の違いを区別できる

ステップ6-1:Ref型の基本を理解する

Ref 型 は、 「この行は、別テーブルのどの行を指しているのか」を示すための型です。 AppSheetでは、これを使うことで 親子関係 を作れます。

親テーブル
例:備品マスタ。1つの備品の基本情報を持つテーブル
子テーブル
例:貸出履歴。1つの備品に対して何件も増えていく履歴テーブル
Ref 列の役割
子テーブル側に「どの備品か」を示す列を作り、その型を Ref にすると親とつながります。
典型例

貸出履歴テーブルに [Item ID] という列を作り、 その型を Ref → 備品マスタ に設定します。

Relation Diagram

親子関係のイメージ

Parent
Items(備品マスタ)
Item ID: EQ-001
Item Name: ノートPC
Quantity: 3
Child
Borrow Logs(貸出履歴)
Item ID: EQ-001
User: 田中
Borrow Date: 2026/04/18
子テーブルの Item ID が、親テーブルの Item ID を指している状態です。

ステップ6-2:子テーブルから親テーブルの値を呼ぶ

Ref 型が設定されると、 子テーブル側から親テーブルの値を ドット記法 で呼び出せるようになります。

Dereference
[Item ID].[Quantity]
意味
子テーブルにある [Item ID] が指している親レコードの [Quantity] を取り出す、という意味です。
何が便利か
貸出履歴テーブルからでも、元の備品マスタにある名前、在庫数、カテゴリなどを直接参照できます。
よく使う形
[Item ID].[Item Name][Item ID].[Category][Item ID].[Quantity] など
Dereference Mock

[Item ID].[Quantity] の読み方

Child row
Borrow Logs の1行
Item ID = EQ-001
User = 田中
Referenced parent
Items の EQ-001
Item Name = ノートPC
Quantity = 3
つまり [Item ID].[Quantity] は「EQ-001 が指す親行の Quantity」を意味します。

ステップ6-3:SELECT関数とは?

SELECT() は、 あるテーブルの中から 条件に合う値を集める ときに使う関数です。

SELECT(table[column], condition)
SELECT(
  Borrow Logs[User],
  [Item ID] = [_THISROW].[Item ID]
)
意味
Borrow Logs テーブルの中から、今見ている Item ID と同じ履歴の User を集める、という意味です。
返ってくるもの
条件に合った値のリストが返ります。1件とは限らず、複数件返ることがあります。
向いている用途
関連する履歴一覧、特定条件の抽出、件数確認、重複チェックなど
Filter View

SELECT() のイメージ

Source table
Borrow Logs
EQ-001 / 田中
EQ-002 / 佐藤
EQ-001 / 鈴木
Condition
[Item ID] = [_THISROW].[Item ID]
Result
田中
鈴木
「条件に合うものを全部拾ってくる」のが SELECT のイメージです。

ステップ6-4:Ref と SELECT はどう使い分ける?

どちらも「別のデータを参照する」ために使いますが、 得意なことが違います。

Ref / Dereference

1つの親レコードから値を取りたい

すでに Ref でつながっている相手から、 名前や数量などの列をシンプルに取り出したいときに向いています。

[Item ID].[Quantity]
SELECT

条件に合う複数の値を拾いたい

関連する履歴を一覧で集めたい、特定条件のレコードを探したいときに向いています。

SELECT(Borrow Logs[User], [Item ID] = [_THISROW].[Item ID])
Ref が向いている場面
  • ・子テーブルから親テーブルの「1つの値」を取りたい
  • ・Item Name や Quantity などを呼びたい
  • ・式をシンプルに書きたい
SELECT が向いている場面
  • ・条件に合う複数行を拾いたい
  • ・関連履歴をまとめたい
  • ・件数確認や存在チェックもしたい
迷ったときの考え方

「すでに Ref でつながっている1件の親から取りたい」なら [Ref列].[列名]、 「条件に合う複数件を探したい」なら SELECT() と考えると整理しやすいです。

ここまでできたら成功です

Ref理解OK
親子関係をつなぐ役割だと理解した
呼び出しOK
[Item ID].[Quantity] の意味がわかった
使い分けOK
Ref と SELECT の違いを説明できる
Checklist
ステップ6 振り返りチェック