Associar tabelas e consultas

Importante :  Este artigo foi traduzido por um sistema de tradução automática, leia o aviso de isenção de responsabilidade. Para sua referência, veja a versão em inglês deste artigo aqui.

Quando você inclui várias fontes de dados em uma consulta do Access, você usa ligações para limitar os registros que você deseja ver, com base em como fontes de dados estão relacionadas uns aos outros. Você também usar junções para combinar registros de ambas as fontes de dados, para que cada par de registros das fontes torna-se um registro nos resultados da consulta.

Este artigo discute os vários tipos de junções e mostra como usá-las em uma consulta. Por padrão, uma junção é criada automaticamente se já houver uma relação entre duas fontes de dados que você usa em uma consulta. Uma associação também é criada se houver campos que correspondem claramente uns aos outros. Você pode excluir uma junção criada automaticamente. Este artigo fornece informações básicas sobre relações de tabela, incluindo como criar uma.

Observação : Você pode ingressar consultas da mesma maneira que você associa tabelas e também pode ingressar ambos.

Neste artigo

Visão geral

Tipos de junções

Mostrar linhas onde um valor em comum existe em ambas as tabelas unidas

Mostrar todas as linhas de uma tabela e linhas correspondentes da outra tabela

Mostrar todas as linhas de ambas as tabelas e participar de onde um valor em comum existe

Cross junções

Associar tabelas com base em uma desigualdade de valores de campo

Excluir uma junção

Visão geral

Um banco de dados é uma coleção de tabelas de dados que trazem relações lógicas uns aos outros. Use relações para conectar tabelas por campos que eles têm em comum. Uma tabela pode fazer parte de qualquer número de relações, mas cada relação sempre tem exatamente duas tabelas. Em uma consulta, uma relação é representada por uma junção.

Quando você adicionar tabelas a uma consulta, Access cria junções que são baseadas em relações que foram definidas entre as tabelas. Você pode criar manualmente junções em consultas, mesmo se eles não representam relações que já foram definidas. Se você usar outras consultas (em vez de ou além das tabelas) como fontes de dados para uma consulta, você pode criar relações entre as consultas de origem e também entre essas consultas e todas as tabelas que você usa como fontes de dados.

Junções se comportam de maneira semelhante aos critérios de consulta em que eles estabelecerem regras que os dados devem corresponder para ser incluído nas operações de consulta. Ao contrário dos critérios, junções também especificam que cada par de linhas que satisfazem as condições de junção será combinado no conjunto de registros para formar uma única linha.

Há quatro tipos básicos de junções: junções internas, junções externas, junções cruzadas e junções desiguais. Este artigo aborda cada tipo de junção que você pode usar, por que você usar cada tipo e como criar associações.

As junções são para as consultas o que as relações são para as tabelas: uma indicação de como dados em duas fontes podem ser combinados com base em valores de dados que elas têm em comum. Aqui está uma ilustração de uma junção em uma consulta no modo Design, com as propriedades da junção abertas em uma caixa de diálogo:

A caixa Propriedades da Junção.

Essa linha entre as tabelas representa a junção. Clique duas vezes em uma associação para abrir o caixa de diálogo de Propriedades da junção (representados) e rever ou alterar a junção.

Às vezes, as junções são direcionais. Esta área da caixa de diálogo mostra qual tabela é qual na junção e quais campos são usados para unir as tabelas.

Esta área determina o tipo de junção: a opção 1 é uma junção interna, a 2 é uma junção externa esquerda e a 3 é uma junção externa direita.

Campos de ambas as tabelas podem ser usados, e os dados relativos a uma determinada tarefa são exibidos de ambas. Em uma junção interna, nenhum outro dado é incluído. Em uma junção externa, registros não relacionados de uma tabela também são incluídos nos resultados da consulta.

Início da página

Tipos de junção

Existem quatro tipos básicos de junções: junções internas, externas, cruzadas e desiguais. As junções cruzadas e desiguais são tipos avançados e são raramente usadas, mas você deve conhecê-las para ter uma compreensão completa de como as junções funcionam.

Junções internas> apenas dados relacionados de ambas as tabelas combinados

Uma junção interna é aquela na qual o Access apenas inclui dados de uma tabela se há dados correspondentes na tabela relacionada e vice-versa. Na maioria das vezes, você usará junções internas. Quando você cria uma junção e não especifica o tipo, o Access assume que você queira uma junção interna. As junções internas são úteis porque permitem combinar dados de duas fontes com base em valores compartilhados – assim, você só vê dados quando há uma imagem completa.

Junções externas: todos os dados relacionados combinados corretamente, mais todos os registros restantes de uma tabela

Uma junção externa é como uma interna, mas adiciona as linhas restantes de uma das tabelas. As junções externas são direcionais: uma junção externa esquerda inclui todos os registros da tabela esquerda – a primeira tabela da junção – e uma junção externa direita inclui todos os registros da tabela direita – a segunda tabela da junção.

Junções externas completas: todos os dados, combinados onde seja viável

Em alguns sistemas, uma junção externa pode incluir todas as linhas de ambas as tabelas, com linhas combinadas quando correspondem. Isso se chama junção externa completa, e o Access não fornece suporte explicitamente para ela. Entretanto, você pode usar uma junção cruzada e critérios para obter o mesmo efeito.

Junções cruzadas: todos os dados, combinados de todas as maneiras possíveis

Na maioria das vezes, uma junção cruzada é um efeito colateral da adicionar duas tabelas a uma consulta e depois se esquecer de uni-las. O Access conclui que você quer ver todos os registros de uma tabela combinados com todos os registros da outra tabela – todas as combinações possíveis de registros. Como nenhum dado pode ser combinado, esse tipo de junção raramente produz resultados úteis. Mas há alguns casos em que uma junção cruzada é exatamente o que você precisa.

Junções desiguais: como uma junção normal, mas usando uma comparação diferente para combinar linhas

Junções desiguais usam um operador que não o sinal de igual (=) para comparar valores e determinar se e como combinar os dados. Junções desiguais não têm suporte explicitamente, mas você pode usar uma junção cruzada e critérios para obter o mesmo efeito.

Mostrar linhas onde um valor em comum existe em ambas as tabelas unidas

Se você deseja mostrar apenas as linhas que têm valores correspondentes no campo unido, use uma junção interna. O Access cria junções internas automaticamente.

Junções internas são o tipo mais comum de junção. Eles indicam uma consulta que linhas de uma da unidas tabelas corresponderem às linhas na outra tabela, com base nos dados nos campos associados. Quando uma consulta com uma junção interna é executada, apenas as linhas onde um valor em comum existe em ambas as tabelas unidas serão incluídas nas operações de consulta.

Como eu uso uma junção interna?

Na maioria das vezes, você não precisa fazer nada para usar uma junção interna. Se as tabelas que você adiciona a uma consulta já têm relações, o Access automaticamente cria uma junção interna entre cada par de tabelas relacionadas, quando você adiciona as tabelas. Se a integridade referencial é imposta, o Access também exibe um "1" acima da linha da junção para mostrar qual tabela está no lado "um" de uma relação um-para-muitos e um símbolo de infinito () para mostrar qual tabela está no lado "muitos".

Mesmo se você ainda não criou relações, o Access cria automaticamente junções internas se você adicionar duas tabelas a uma consulta e nessas tabelas têm um campo com o mesmo ou tipo de dados compatíveis e um dos campos de junção é uma chave primária. Os símbolos "um" e "muitos" não são exibidos neste caso, porque a integridade referencial não é imposta.

Se você adiciona consultas à sua consulta e não criou relações entre essas consultas, Access não criar automaticamente junções internas entre as consultas ou tabelas e consultas. Geralmente, você deve criá-las por conta própria. Você pode criar uma junção interna arrastando um campo de uma fonte de dados a um campo em outra fonte de dados. O Access exibirá uma linha entre os dois campos para mostrar que uma junção foi criada.

Sintaxe SQL de uma junção interna

As junções internas são especificadas no SQL na cláusula FROM, conforme mostrado abaixo:

FROM Tabela1 INNER JOIN Tabela2 na Tabela1. campo1 comparar 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.

Comparar

Qualquer operador de comparação relacional: "=", "<", ">", "<=", ">=" ou "<>".

Para obter mais informações sobre a sintaxe de junção interna, consulte o tópico Operação INNER JOIN.

Início da página

Mostrar todas as linhas de uma tabela e linhas correspondentes da outra tabela

Junções externas informam uma consulta que embora algumas das linhas em ambos os lados da junção correspondam exatamente, a consulta deve incluir todas as linhas de uma tabela e também essas linhas da outra tabela que compartilham um valor comum em ambos os lados da junção.

A junção externa pode ser esquerda ou direita. Em uma junção externa esquerda, a consulta inclui todas as linhas da primeira tabela na cláusula FROM da instrução SQL, e apenas aquelas linhas da outra tabela em que o campo unido contenha valores comuns a ambas as tabelas. Em uma junção externa direita, a consulta inclui todas as linhas da segunda tabela na cláusula FROM da instrução SQL, e apenas aquelas linhas da outra tabela em que o campo unido contenha valores comuns a ambas as tabelas.

Observação : Você pode dizer facilmente qual tabela é a tabela à esquerda ou tabela direita em uma determinada associação clicando duas vezes na junção e, em seguida, procurando na caixa de diálogo Propriedades da junção. Você pode também alternar para modo SQL e, em seguida, examine a cláusula FROM.

Como algumas das linhas em um lado de uma junção externa não terão linhas correspondentes da outra tabela, alguns dos campos retornados nos resultados da consulta dessa outra tabela estarão vazios quando as linhas não corresponderem.

Como eu uso uma junção externa?

Você cria uma junção externa modificando uma junção interna existente. Se não existir nenhuma junção interna, crie uma e mude-a para junção externa.

Converter uma junção interna em externa

  1. No modo Design da consulta, clique duas vezes na junção que você deseja mudar.

    A caixa de diálogo Propriedades da Junção aparece.

  2. Na caixa de diálogo Propriedades da junção, observe as escolhas listadas ao lado da opção 2 e opção 3.

  3. Clique na opção que você deseja usar e clique em OK.

  4. O Access exibe a junção e mostra uma seta que aponta partindo da fonte de dados onde todas as linhas serão incluídas para a fonte de dados onde apenas as linhas que satisfizerem a condição da junção serão incluídas.

Junções externas ambíguas

Se você criar uma consulta que contém um LEFT JOIN e uma junção interna, acesso não poderá determinar qual ingressar operação a ser executada primeiro. Como os resultados são diferentes dependendo se a junção esquerda ou a junção interna é executada primeiro, o Access exibe uma mensagem de erro:

Para corrigir esse erro, você deve modificar a consulta para que fique claro qual junção deverá ser executada primeiro.

Sintaxe SQL de uma junção externa

As junções externas são especificadas no SQL na cláusula FROM, conforme mostrado a seguir:

DE table1 [esquerda | DIREITA] JOIN Tabela2
na table1.field1 comparar. Tabela2. campo2

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 dados da mesma natureza, mas não precisam ter o mesmo nome.

Comparar

Qualquer operador de comparação relacional: "=", "<", ">", "<=", ">=" ou "<>".

Para obter mais informações sobre a sintaxe de junção externa, consulte o tópico LEFT JOIN, operações de junção direita.

Início da página

Mostrar todas as linhas de ambas as tabelas e participar de onde um valor em comum existe

Quando você deseja mostrar todas as linhas de duas tabelas e associá-los com base em valores comuns, você pode usar uma junção externa completa. Acesso não suporte explicitamente para junções externas completas, mas você pode obter o mesmo efeito usando uma consulta união. O procedimento a seguir explica como fazer isso, mas se desejar obter mais informações sobre consultas união, consulte a seção Consulte também.

Usar uma consulta união para executar uma junção externa completa:

  1. Crie uma consulta com uma junção externa esquerda no campo que você deseja usar em uma junção externa completa.

  2. Na guia Página Inicial, no grupo Modos de Exibição, clique em Modo de Exibição e, em seguida, clique em Modo SQL.

  3. Pressione CTRL + C para copiar o código SQL.

  4. Exclua o ponto e vírgula no final da cláusula FROM e pressione ENTER.

  5. Digite UNION e pressione Enter.

    Observação : Não use a palavra-chave ALL ao usar uma consulta união que execute uma junção externa completa.

  6. Pressione CTRL + V para colar o código SQL que você copiou na etapa 3.

  7. No código que você colou, altere LEFT JOIN para RIGHT JOIN.

  8. Exclua o ponto e vírgula no final da segunda cláusula FROM e pressione ENTER.

  9. Adicione uma cláusula WHERE que especifique que o valor do campo de junção é NULL na primeira tabela listada na cláusula FROM (tabela à esquerda).

    Por exemplo, se a cláusula FROM for:

    FROM Products RIGHT JOIN [Order Details] 
    ON Products.ID = [Order Details].[Product ID]

    Você adicionará a seguinte cláusula WHERE:

    WHERE Products.ID IS NULL

  10. Digite um ponto-e-vírgula (;) no final da cláusula WHERE para indicar o final da consulta união.

  11. Na guia Design, no grupo Resultados, clique em Executar.

Cross junções

Junções cruzadas são diferentes das relações internas e externas em que elas não são explicitamente representadas em Access. Em uma junção cruzada, cada linha de uma tabela é combinada com cada linha de outra tabela, resultando no que é chamado de um produto cruzado ou produto cartesiano. Sempre que você executa uma consulta que possui tabelas que não fazem parte explicitamente, um produto cruzado é o resultado. Junções cruzadas são geralmente não intencionais, mas há casos em que eles podem ser úteis.

Por que eu usaria uma junção cruzada?

Se desejar examinar todas as combinações possíveis de linhas entre duas tabelas ou consultas, use uma junção cruzada. Por exemplo, suponha que sua empresa teve um ano espetaculares e você estiver considerando concedendo descontos aos seus clientes. Você pode criar uma consulta que soma de compras de cada cliente, criar uma pequena tabela com várias porcentagens de reembolso possíveis e combinar as duas em outra consulta que realiza uma junção cruzada. Você acaba tendo uma consulta que exibe um conjunto de descontos hipotéticos para cada cliente.

Como eu uso uma junção cruzada?

Uma junção cruzada é gerada sempre que você incluir tabelas ou consultas em sua consulta e não criar pelo menos uma associação explícita para cada tabela ou consulta. Access combina cada linha de cada tabela ou consulta que não está explicitamente associada a qualquer outra tabela ou consulta para todas as outras linhas nos resultados. Considere o cenário de reembolso do parágrafo anterior. Suponha que você tem 91 clientes, e que você deseja examinar cinco porcentagens de reembolso possíveis. Sua junção cruzada produz 455 linhas (o produto de 91 e 5).

Como você pode imaginar, não intencionais junções cruzadas podem criar grandes quantidades de linhas nos resultados da consulta. Além disso, esses resultados são geralmente sentidos, porque se você realmente não pretende combinar todas as linhas com todas as outras linhas, a maioria das linhas combinadas que aparecem nos resultados não farão sentido. Por fim, as consultas que usam junções cruzadas não intencionais podem levar muito tempo para executar.

Associação cruzada não intencional no modo Design
Ingressar em uma cruz não intencional no modo Design da consulta.

1. os campos circulados devem estar Unidos uns aos outros.

Produto cruzado não intencional
O produto cruzado retornado pela junção cruzada não intencional descrita acima.

1. Observe o número muito grande de registros.

O resultado corrigido da consulta
Os resultados após a associação correta é criada.

1. Observe que o número de registros é muito menor.

Início da página

Associar tabelas com base em uma desigualdade de valores de campo

As junções não precisam ser baseadas na equivalência dos campos unidos. Uma junção pode ser baseada em qualquer operador de comparação, como maior que (>), menor que (<) ou diferente de (<>). Junções que não são baseadas em equivalência são chamadas de junções desiguais.

Se você deseja combinar as linhas de duas fontes de dados com base em valores de campo que não sejam iguais, use uma junção desigual. Em geral, as junções desiguais são baseadas nos operadores de comparação maior que (>), menor que (<), maior ou igual a (>=) ou menor ou igual a (<=). As junções desiguais baseadas no operador diferente de (<>) podem retornar quase tantas linhas quanto as junções cruzadas, e os resultados podem ser difíceis de serem interpretados.

Como eu uso uma junção desigual?

Junções desiguais não são suportadas no modo Design. Se desejar usá-las, você deve fazer isso usando o modo SQL. No entanto, você pode criar uma associação no modo Design, alterne para modo SQL, encontre a igual operador de comparação (=) e alterar o operador que você deseja usar. Depois de fazer isso, você pode apenas abrir a consulta no modo Design novamente se você primeira alteração o operador de comparação de volta para for igual a (=) no modo SQL.

Excluir uma junção

Se o Access criar automaticamente uma junção indesejada ou se criar uma junção por engano — por exemplo, uma junção entre dois campos que têm tipos de dados diferentes — você poderá excluí-la.

  1. Na grade de design da consulta, clique na junção que você deseja remover.

  2. Pressione DELETE.

– ou –

  • Na grade de design da consulta, clique com botão direito na junção que você deseja remover e clique em Excluir.

Início da página

Observação : Aviso de Isenção de Tradução Automática: Este artigo foi traduzido por computador, sem intervenção humana. A Microsoft oferece essas traduções automáticas para ajudar as pessoas que não falam inglês a aproveitar os textos escritos sobre produtos, serviços e tecnologias da Microsoft. Como este artigo foi traduzido automaticamente, é possível que contenha erros de vocabulário, sintaxe ou gramática.

Consulte Também

Adicionar registros a uma tabela usando uma consulta acréscimo

Combinar os resultados de várias consultas seleção usando uma consulta união

Criar uma consulta com base em várias tabelas

Criar, editar ou excluir uma relação

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×