BY 句を使用したドキュメント ID のクエリの実行 - Amazon Quantum Ledger Database (Amazon QLDB)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

BY 句を使用したドキュメント ID のクエリの実行

一意の識別子 (車両の VIN など) 用にフィールドを定義することはできますが、実際のドキュメントの一意の識別子は、「ドキュメントの挿入」で説明されているとおり、id メタデータのフィールドになります。このため、id フィールドを使用して、各テーブル間の関係を作成できます。

ドキュメントの id フィールドは、コミット済みビューでのみ直接アクセスできますが、BY 句を使用すれば、デフォルトのユーザービューに射影することもできます。例として、以下のクエリとその結果を参照してください。

SELECT r_id, r.VIN, r.LicensePlateNumber, r.State, r.City, r.Owners FROM VehicleRegistration AS r BY r_id WHERE r_id = '3Qv67yjXEwB9SjmvkuG6Cp'
{ r_id: "3Qv67yjXEwB9SjmvkuG6Cp", VIN: "1N4AL11D75C109151", LicensePlateNumber: "LEWISR261LL", State: "WA", City: "Seattle", Owners: { PrimaryOwner: { PersonId: "294jJ3YUoH1IEEm8GSabOs" }, SecondaryOwners: [{ PersonId: "5Ufgdlnj06gF5CWcOIu64s" }] } }

このクエリで、r_id は、BY キーワードを使用して FROM 句で宣言されているユーザー定義のエイリアスです。この r_id エイリアスは、クエリの結果セットで各ドキュメントの id メタデータフィールドにバインドされます。SELECT 句とユーザービューのクエリの WHERE 句にこのエイリアスを使用できます。

ただし、他のメタデータの属性にアクセスするには、コミット済みビューでクエリを実行する必要があります。

ドキュメント ID での結合

あるテーブルのドキュメント id を別のテーブルのユーザー定義フィールド内の外部キーとして使用しているとします。BY 句を使用すると、これらのフィールドに 2 つのテーブルの内部結合クエリを記述できます (前のトピックの「コミットされたビューとユーザービューへの参加」と同様)。

次の例は、DriversLicensePersonPersonId という名前の 2 つのテーブルをドキュメント id のフィールドとそれぞれ結合します。後者には BY 句を使用します。

SELECT * FROM DriversLicense AS d INNER JOIN Person AS p BY pid ON d.PersonId = pid WHERE pid = '1CWScY2qHYI9G88C2SjvtH'

テーブル内のドキュメントを変更する方法については、「ドキュメントの更新と削除」に進みます。