4D v14.3RELATE ONE SELECTION |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
RELATE ONE SELECTION
|
RELATE ONE SELECTION ( manyTable ; oneTable ) | ||||||||
引数 | 型 | 説明 | ||||||
manyTable | テーブル |
![]() |
nテーブル (リレーションの開始元) | |||||
oneTable | テーブル |
![]() |
1テーブル (リレーションの参照先) | |||||
RELATE ONE SELECTIONコマンドは、manyTableのレコードセレクションをもとにして、oneTableテーブルの新しいセレクションを作成し、その新しいセレクションの最初のレコードをカレントレコードとしてロードします。
このコマンドはmanyTableからoneTableへのリレートがある場合にのみ使用できます。RELATE ONE SELECTIONはリレートの複数レベルを対象に動作できます。manyTableとoneTableの間には複数のリレートテーブルがある場合があります。これらのリレートは、マニュアルリレートまたは自動リレートのどちらでも動作します。
RELATE ONE SELECTIONは開始テーブルからリレート先テーブルまで設定されているリレーションパスのうち、最も短いものを使用します。同じサイズのパスが存在する場合、RELATE ONE SELECTIONは開始テーブル中で作成された順番のなかで最初に見つかったパスを使用します。
以下の例では、今日が請求書の支払期日であるすべての顧客を検索します。
以下は、[Invoices]テーブル内のレコードセレクションに基づき、[Customers]テーブルのセレクションを作成します:
CREATE EMPTY SET([Customers];"Payment Due")
QUERY([Invoices];[Invoices]DueDate=Current date)
While(Not(End selection([Invoices])))
RELATE ONE([Invoices]CustID)
ADD TO SET([Customers];"Payment Due")
NEXT RECORD([Invoices])
End while
以下の手法ではRELATE ONE SELECTIONを使用して同じ結果を得ています:
QUERY([Invoices];[Invoices]DueDate=Current date)
RELATE ONE SELECTION([Invoices];[Customers])
注: バージョン11以降、このコードはパフォーマンスを低下させることなく以下のコードに書き換えることができます:
QUERY([Customers];[Invoices]DueDate=Current date)
プロダクト: 4D
テーマ: リレーション
番号:
349
変更: 4D v6
QUERY
RELATE MANY SELECTION
RELATE ONE
セット
ランゲージリファレンス ( 4D v12.4)
ランゲージリファレンス ( 4D v11 SQL Release 6)
ランゲージリファレンス ( 4D v14 R3)
ランゲージリファレンス ( 4D v14 R2)
ランゲージリファレンス ( 4D v13.5)
ランゲージリファレンス ( 4D v14.3)
ランゲージリファレンス ( 4D v14 R4)