Combina registros de duas tabelas sempre que houver valores correspondentes em um campo comum.
Sintaxe
FROM tabela1 INNER JOIN tabela2 ON tabela1.campo1compopr tabela2.campo2
A operação INNER JOIN tem 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. Se não forem numéricos, os campos deverão ser do mesmo tipo de dados e conter dados da mesma natureza, mas não precisam ter o mesmo nome. |
oprcomp |
Qualquer operador de comparação relacional: "=", "<", ">", "<=", ">=" ou "<>". |
Comentários
Você pode usar uma operação de INNER JOIN na cláusula FROM. Esse é o tipo de junção mais comum. As junções internas combinam registros de duas tabelas sempre que houver valores correspondentes em um campo comum a ambas as tabelas.
Você pode usar INNER JOIN com as tabelas Departamentos e Funcionários 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), você pode usar uma operação LEFT JOIN ou RIGHT JOIN para criar uma junção externa.
Se você tentar inserir campos com dados de Memorando ou Objeto OLE, ocorrerá um erro.
Você pode juntar quaisquer dois campos numéricos de tipos semelhantes. Por exemplo, você pode juntar os campos Numeração Automática e Longo porque eles são tipos semelhantes. No entanto, você não pode juntar os tipos de campos Único e Duplo.
O exemplo a seguir mostra como você pode unir as tabelas Categorias e Produtos no campo ID de Categoria:
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
No exemplo anterior, a ID de Categoria é o campo de junção, mas não é incluída na saída de consulta porque não ela está incluída na instrução SELECT. Para incluir o campo de junção, inclua o nome do campo na instrução SELECT, nesse caso, Categories.CategoryID.
Você também pode vincular várias cláusulas ON em uma instrução de JOIN, usando a seguinte sintaxe:
SELECT campos
FROM tabela1 INNER JOIN tabela2 ON tabela1.campo1compoprtabela2.campo1 AND ON tabela1.campo2compoprtabela2.campo2) OR ON tabela1.campo3compoprtabela2.campo3)];Também é possível aninhar instruções JOIN usando a seguinte sintaxe:
SELECT campos
FROM tabela1 INNER JOIN (tabela2 INNER JOIN [( ]tabela3 [INNER JOIN [( ]tabelax [INNER JOIN ...)] ON tabela3.campo3compoprtabelax.campox)] ON tabela2.campo2compoprtable3.campo3) ON tabela1.campo1compoprtabela2.campo2;Uma LEFT JOIN ou RIGHT JOIN pode estar aninhada em uma INNER JOIN, mas INNER JOIN não pode estar aninhada dentro de uma LEFT JOIN ou RIGHT JOIN.