Combina registros da tabela de origem quando usados em qualquer cláusula FROM.
Sintaxe
FROM tabela1 [ LEFT | RIGHT ] JOIN tabela2
ON tabela1.campo1compopr tabela2.campo2As 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 dados da mesma natureza, mas não precisam ter o mesmo nome. |
oprcomp |
Qualquer operador de comparação relacional: "=", "<", ">", "<=", ">=" ou "<>". |
Comentários
Use uma operação LEFT JOIN para criar um junção esquerda externa. 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 um junção direita externa. 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 de junção, 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.