本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通过 BY 子句查询文档 ID
重要
终止支持通知:现有客户可以在2025年7月31日终止支持QLDB之前使用亚马逊。有关更多详细信息,请参阅将亚马逊QLDB账本迁移到亚马逊 Aurora Postgr SQL
虽然您可以定义作为唯一标识符的字段(例如车辆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
是用户定义别名,在FROM
子句中使用BY
关键字声明。此 r_id
别名绑定至查询结果集中每个文档的 id
元数据字段。你可以在SELECT
子句中使用这个别名,也可以在用户视图的查询 WHERE
子句中使用这个别名。
但是,若要访问其他元数据属性,必须查询已提交视图。
使用证件 ID 加入
假设您正在使用一个表的id
文档作为另一个表用户定义字段中的外键。您可以使用 BY
子句为这两个字段上的两个表编写内部联接查询(与上一主题中的加入已提交和用户视图类似)。
以下示例分别在它们的 PersonId
和文档 id
字段上连接两个名为 DriversLicense
和 Person
的表,对后者使用 BY
子句。
SELECT * FROM DriversLicense AS d INNER JOIN Person AS p BY pid ON d.PersonId = pid WHERE pid = '
1CWScY2qHYI9G88C2SjvtH
'
要了解如何对表格中的文档更改,请继续 更新和删除文档。