

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usar a cláusula BY para consultar o ID do documento
<a name="working.metadata.by-clause"></a>

**Importante**  
Aviso de fim do suporte: os clientes existentes poderão usar o Amazon QLDB até o final do suporte em 31/07/2025. Para obter mais detalhes, consulte [Migrar um Amazon QLDB Ledger para o Amazon](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/) Aurora PostgreSQL.

Embora você possa definir campos destinados a serem identificadores exclusivos (por exemplo, o VIN de um veículo), o verdadeiro identificador exclusivo de um documento é o campo de metadados`id`, conforme descrito em [Inserir documentos](working.create.md#working.create.insert). Por esse motivo, você pode usar o campo `id` para criar relações entre tabelas.

O campo `id` do documento pode ser acessado diretamente somente na visualização confirmada, mas você também pode projetá-lo na visualização padrão do usuário usando a cláusula `BY`. Para ver um exemplo, consulte a consulta a seguir e seus resultados.

```
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" }]
    }
}
```

Nessa consulta, `r_id` é um alias definido pelo usuário que é declarado na cláusula `FROM`, usando a palavra-chave `BY`. Esse alias `r_id` se vincula ao campo de metadados `id` de cada documento no conjunto de resultados da consulta. Você pode usar esse alias na cláusula `SELECT` e também na cláusula `WHERE` de uma consulta na *visualização do usuário*.

Para acessar outros atributos de metadados, no entanto, você deve consultar a visualização confirmada.

## Ingressando no ID do documento
<a name="working.by-clause.joining-on-id"></a>

Suponha que você esteja usando o documento `id` de uma tabela como chave estrangeira em um campo definido pelo usuário de outra tabela. Você pode usar a cláusula `BY` para escrever uma consulta de junção interna para as duas tabelas nesses campos (semelhante ao [Unir as visualizações confirmadas e do usuário](working.metadata.md#working.metadata.committed-joins) no tópico anterior).

A consulta a seguir une duas tabelas nomeadas `DriversLicense` e `Person` em seus `PersonId` e campos `id` do documento, respectivamente, usando a cláusula `BY` para a última.

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

Para saber como fazer alterações em um documento em sua tabela, vá para [Atualizar e excluir documentos](working.revisions.md).