Operação INNER JOIN

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

Sintaxe

FROM tabela1 INNER JOIN tabela2 ON tabela1.campo1.opcomp tabela2.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 mas não necessitam 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 aos mesmos) ou todos os funcionários (mesmo que alguns não estejam atribuídos a um departamento), pode utilizar uma operação de 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:

SELECT campos
FROM tabela1 INNER JOIN tabela2
ON tabela1.campo1opcomptabela2.campo1 AND
ON tabela1.campo2opcomptabela2.campo2) OR
ON tabela1.campo3opcompcampo2.campo3)];

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

SELECT campos
FROM tabela1 INNER JOIN
(tabela2 INNER JOIN [( ]tabela3
[INNER JOIN [( ]tabelax [INNER JOIN ...)]
ON tabela3.campo3opcomptabelax.campox)]
ON tabela2.campo2opcomptabela3.campo3)
ON tabela1.campo1opcomptabela2.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.



Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×