

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 BY 子句查詢文件 ID
<a name="working.metadata.by-clause"></a>

**重要**  
支援終止通知：現有客戶將可以使用 Amazon QLDB，直到 07/31/2025 的支援結束為止。如需詳細資訊，請參閱[將 Amazon QLDB Ledger 遷移至 Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/)。

雖然您可以定義旨在成為唯一識別符的欄位 （例如，車輛的 VIN)，但文件的真正唯一識別符是`id`中繼資料欄位，如中所述[插入文件](working.create.md#working.create.insert)。因此，您可以使用 `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
<a name="working.by-clause.joining-on-id"></a>

假設您使用`id`一個資料表的文件做為另一個資料表的使用者定義欄位中的外部索引鍵。您可以使用 `BY`子句，為這些欄位上的兩個資料表撰寫內部聯結查詢 （類似於上一個主題[加入遞交和使用者檢視](working.metadata.md#working.metadata.committed-joins))。

下列範例會使用後者子`BY`句，分別在 `PersonId`和 文件`id`欄位`Person`上聯結兩個名為 `DriversLicense`和 的資料表。

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

若要了解如何變更資料表中的文件，請繼續[更新和刪除文件](working.revisions.md)。