Operação INNER JOIN

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

Combina os registos de duas tabelas sempre que existam valores correspondentes num campo comum.

Sintaxe

FROM table1 INNER JOIN table2 ON table1. field1compopr table2. campo2

A operação INNER JOIN tem as seguintes partes:

Parte Descrição
tabela1, tabela2 Os nomes das tabelas das quais os registos são combinados.
campo1, campo2 Os nomes dos campos que estão associados. Se não forem numéricos, os campos têm de ter o mesmo tipo de dados e conter o mesmo tipo de dados, mas não têm de ter o mesmo nome.
opcomp Qualquer operador de comparação relacional: "=", "<", "", "><=", ">=" ou "<>".

      

Observações

Pode utilizar uma operação INNER JOIN em qualquer cláusula FROM. Este é o tipo de associação mais comum. As associações internas combinam os registos de duas tabelas sempre que existam valores correspondentes num campo comum a ambas as tabelas.

Pode utilizar uma operação INNER JOIN nas tabelas Departments e Employees para selecionar todos os funcionários em cada departamento. Por outro lado, para selecionar todos os departamentos (mesmo que alguns não tenham funcionários atribuídos) ou todos os funcionários (mesmo que alguns não estejam atribuídos a um departamento), pode utilizar uma operação LEFT JOIN ou RIGHT JOIN para criar uma associação externa.

Se tentar associar campos que contenham dados do tipo Memo ou Objeto OLE, será apresentado um erro.

Pode associar dois campos numéricos de tipos semelhantes. Por exemplo, pode associar campos de Numeração Automática e campos Longos porque são tipos semelhantes. Porém, não pode associar os tipos de campos Simples e Duplo.

O exemplo seguinte mostra como pode associar as tabelas Categories e Products no campo CategoryID:

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

No exemplo anterior, CategoryID é o campo associado, mas não é incluído no resultado da consulta porque não está incluído na instrução SELECT. Para incluir o campo associado, inclua o nome do campo na instrução SELECT — neste caso, Categories.CategoryID.

Também pode ligar várias cláusulas ON numa instrução JOIN, ao utilizar a seguinte sintaxe:

Campos SELECT
FROM table1 INNER JOIN table2
ON table1. field1compoprtable2. campo1 E
ON table1. field2compoprtable2. campo2) OU
ON table1. field3compoprtable2. campo3)];

Também pode aninhar instruções JOIN ao utilizar a sintaxe seguinte:

Campos SELECT
FROM table1 INNER JOIN
(tabela2 INNER JOIN [( ]table3
[INNER JOIN [( ]tablex [INNER JOIN ...)]
NA tabela3. field3compoprtablex. fieldx)]
ON table2. field2compoprtable3. campo3)
ON table1. field1compoprtable2. campo2;

Uma instrução LEFT JOIN ou RIGHT JOIN pode ser aninhada dentro de uma INNER JOIN, mas uma INNER JOIN não pode ser aninhada dentro de uma instrução LEFT JOIN ou RIGHT JOIN.