Operações LEFT JOIN, RIGHT JOIN

Aplica-se a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Combina registros da tabela de origem quando usados em qualquer cláusula FROM.

Sintaxe

FROM table1 [ LEFT | RIGHT ] TABELA JOIN2
TABELA ON1.field1compopr table2.field2

As operações LEFT JOIN e RIGHT JOIN têm estas partes:

Parte Descrição
tabela1, tabela2 Os nomes das tabelas das quais os registros são combinados.
campo1, campo2 Os nomes dos campos que são unidos. Os campos devem ser do mesmo tipo de dados e conter o mesmo tipo de dados, mas não precisam ter o mesmo nome.
oprcomp Qualquer operador de comparação relacional: "=", "<", ">", "<=", ">=" ou "<>".

      

Comentários

Use uma operação JOIN LEFT para criar uma junção externa à esquerda. As junções externas esquerdas incluem todos os registros da primeira (à esquerda) das duas tabelas, mesmo que não haja nenhum valor correspondente para os registros na segunda tabela (à direita).

Use uma operação RIGHT JOIN para criar uma junção externa à direita. As junções externas direitas incluem todos os registros da segunda (à direita) das duas tabelas, mesmo que não haja nenhum valor correspondente para os registros na primeira tabela (à esquerda).

Por exemplo, você poderia usar LEFT JOIN com as tabelas Departamentos (à esquerda) e Funcionários (direita) para selecionar todos os departamentos, inclusive aqueles que não têm funcionários atribuídos a eles. Para selecionar todos os funcionários, inclusive aqueles que não estão atribuídos a um departamento, você usaria RIGHT JOIN.

O exemplo a seguir mostra como você pode ingressar nas tabelas Categorias e Produtos no campo CategoryID. A consulta produz uma lista de todas as categorias, incluindo aquelas que não contêm produtos:

SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;

Neste exemplo, a ID de Categoria é o campo de junção, mas não é incluída nos resultados da consulta porque não ela está incluída na instrução SELECT. Para incluir o campo ingressado, insira o nome do campo na instrução SELECT – nesse caso, Categories.CategoryID.

Para criar uma consulta que inclua somente os registros em que os dados nos campos de junção são os mesmos, use uma operação INNER JOIN.

  • Uma LEFT JOIN ou RIGHT JOIN pode estar aninhada em uma INNER JOIN, mas INNER JOIN não pode estar aninhada em uma LEFT JOIN ou RIGHT JOIN. Veja a discussão de aninhamento no tópico INNER JOIN para ver como aninhar junções dentro de outras junções.
  • Você pode vincular várias cláusulas ON. Veja a discussão sobre vinculação de cláusula no tópico INNER JOIN para ver como fazer isso.

Se você tentar inserir campos com dados de Memorando ou Objeto OLE, ocorrerá um erro.