Usar uma consulta união para combinar várias consultas em um único resultado

Usar uma consulta união para combinar várias consultas em um único resultado

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.

Digamos que seu banco de dados do Access tem duas tabelas não relacionadas – um que armazena os dados do cliente e outro que armazena dados sobre fornecedores – e ambas as tabelas tem um campo de informações de contato. Você gostaria de ver as informações de contato de ambas as tabelas em um modo de exibição. Para fazer isso, primeiro criar uma consulta seleção para cada tabela para recuperar as informações de contato e, em seguida, combinar os resultados, criando uma consulta união.

Observação: O conteúdo deste artigo destina-se para uso com bancos de dados da área de trabalho do Access. Você não pode criar ou usar uma consulta união em bancos de dados do Access web ou aplicativos web do Access.

Precisa de uma atualização sobre a criação de consultas seleção básicas? Consulte criar uma consulta seleção simple.

Primeiro, algumas coisas que devemos saber sobre a criação de uma consulta união:

  • As consultas seleção combinadas em uma consulta união precisam ter o mesmo número de campos de saída, na mesma ordem, com os mesmos tipos de dados compatíveis. Quando você executa uma consulta união, dados de cada conjunto de campos correspondentes são combinados em um campo de saída de forma que a saída da consulta tenha o mesmo número de campos de cada instrução SELECT.

  • Uma consulta de união é específica de SQL e, portanto, deve ser gravada diretamente em SQL. Você alterna para o Modo SQL para gravar consultas específicas SQL, incluindo consultas união.

Etapa 1: criar as consultas seleção

Observação: Embora você possa incluir várias tabelas ou consultas em uma consulta, este procedimento pressupõe que cada uma das suas consultas seleção inclua dados de uma única tabela.

  1. Na guia Criar, no grupo Consultas, clique em Design da Consulta.

  2. Na caixa de diálogo Mostrar Tabela, clique duas vezes na tabela que possui os campos a serem incluídos. A tabela é adicionada à janela de design da consulta.

  3. Feche a caixa de diálogo Mostrar Tabela.

  4. Na janela de design de consulta, clique duas vezes em cada um dos campos que você deseja incluir.
    Ao selecionar campos, verifique se adicionou o mesmo número de campos que adicionou às outras consultas seleção, na mesma ordem. Preste bastante atenção aos tipos de dados dos campos e verifique se eles possuem tipos de dados compatíveis com os campos na mesma posição das outras consultas que você está combinando. Por exemplo, se a primeira consulta seleção tiver cinco campos, o primeiro deles contendo dados de data/hora, verifique se as outras consultas seleção que você está combinando também têm cinco campos, o primeiro deles contendo dados de data/hora, e assim por diante.

  5. Opcionalmente, adicione critérios aos campos digitando as expressões apropriadas na linha critérios da grade de campo.

  6. Após terminar de adicionar campos e critérios de campo, você deve executar a consulta seleção e examine a saída. Na guia Design, no grupo resultados, clique em Executar.

  7. Alterne a consulta para o modo Design.

  8. Salve a consulta seleção e deixe-a aberta.

  9. Repita este procedimento para cada consulta seleção que deseja combinar.

Para obter mais informações sobre como usar critérios em uma consulta, consulte aplicar critérios a uma consulta.

Etapa 2: combinar as consultas seleção

Nesta etapa, você cria a consulta união usando instruções SQL. (Para obter mais informações, consulte a seção de sintaxe SQL , abaixo.)

  1. Na guia Criar, no grupo Consultas, clique em Design da Consulta.

  2. Feche a caixa de diálogo Mostrar Tabela.

  3. Na guia Design, no grupo Consulta, clique em União.

O Access oculta a janela janela de design de consulta e mostra a guia de objeto Modo SQL. Neste ponto,a guia de objeto Modo SQL estará vazia.

  1. Clique na guia da primeira consulta seleção a ser combinada na consulta união.

  2. Na guia página inicial, clique em Exibir > Modo SQL.

  3. Copie a instrução SQL da consulta seleção. Clique na guia da consulta união que você começou a criar na etapa 1.

  4. Cole a instrução SQL da consulta seleção na guia de objeto Modo SQL da consulta união.

  5. Exclua o ponto-e-vírgula (;) no final da instrução SQL da consulta seleção.

  6. Pressione Enter para mover o cursor uma linha para baixo e digite UNION na nova linha.

  7. Clique na guia da próxima consulta seleção a ser combinada na consulta união.

  8. Repita as etapas de 5 a 10 até que você tenha copiado e colado todas as instruções SQL das consultas seleção na janela do modo SQL da consulta união. Não exclua o ponto-e-vírgula, nem digite nada após a instrução SQL da última consulta seleção.

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

Os resultados da sua consulta união aparecem no modo Folha de Dados.

Início da página

Dicas sobre como usar consultas união

  • Para poder distinguir quais linhas vieram de qual tabela, adicione uma cadeia de texto como um campo em cada instrução SELECT.

    Por exemplo, se uma instrução select estiver recuperando campos de uma tabela denominada Produtos e outra instrução select estiver recuperando campos de uma tabela denominada Serviços, adicione a cadeia "Produto" como um campo ao final da primeira instrução e "Serviço" ao final da segunda instrução. Você também pode atribuir um alias de campo (por exemplo, "tipo") às cadeias usando a palavra-chave AS, conforme mostrado no exemplo a seguir:

    SELECT field1, field2, ... "Product" AS type

    SELECT field1, field2, ... "Service" AS type

    A saída da consulta incluiria um campo chamado "tipo" que exibe se a linha é proveniente da tabela Produtos ou da tabela Serviços.

  • Cada palavra-chave UNION combina as instruções SELECT imediatamente anteriores ou posteriores a ela. Se você usar a palavra-chave ALL com algumas palavras-chave UNION da consulta, mas não com outras, os resultados incluirão linhas duplicadas dos pares de instruções SELECT combinados através de UNION ALL, mas não incluirão linhas duplicadas das instruções SELECT combinadas através de UNION sem a palavra-chave ALL.

  • O número, tipos de dados e ordem dos campos nas consultas seleção devem corresponder. Você pode usar expressões, como cálculos ou subconsultas, para fazer com que correspondam.

    Por exemplo, você pode fazer a correspondência de um campo de ano de dois caracteres com um campo de ano de quatro caracteres usando a função Right para extrair os dois últimos dígitos do ano de quatro caracteres.

Usando os resultados de uma consulta união para criar uma nova tabela

Primeiro, use a consulta união como entrada para uma nova consulta seleção e, em seguida, use essa consulta seleção como base de uma consulta criar tabela, conforme mostrado nas etapas a seguir:

  1. Crie e salve a consulta união.

  2. Na guia Criar, no grupo Consultas, clique em Design da Consulta.

  3. Na caixa de diálogo Mostrar Tabela, clique na guia Consultas.

  4. Clique duas vezes na consulta união e feche a caixa de diálogo Mostrar Tabela.

    Observação: Se você vir um aviso de segurança na Barra de Mensagens, as consultas de ação poderão ser desabilitadas. Para habilitar consultas de ação, basta clicar em Habilitar Conteúdo na Barra de Mensagens.

  5. Na grade de design da consulta, na guia de objeto da consulta união, clique duas vezes no asterisco (*) para usar todos os campos da consulta união e criar uma nova tabela.

  6. Na guia Design, no grupo Tipo de Consulta, clique em Criar Tabela.

  7. Na caixa Criar Tabela, digite um nome para a nova tabela.

  8. Opcionalmente, especifique um banco de dados diferente para criar a tabela.

  9. Clique em OK.

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

Usando uma consulta união para executar uma junção externa completa

Você pode usar uma consulta união para executar uma junção externa completa. A junção externa completa não limita as linhas que são retornadas por uma das tabelas associadas, mas combina as linhas com base nos valores do campo de junção.

  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 UNIONe 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.
    Os resultados da sua consulta união aparecem no modo Folha de Dados.

Para obter mais informações, consulte associar tabelas e consultas.

Início da página

Requisitos e sintaxe SQL para uma consulta união

Alguns requisitos para uma consulta união

  • As consultas seleção que você combinar em uma consulta união devem ter o mesmo número de campos de saída, na mesma ordem, e com os mesmos tipos de dados ou com tipos de dados compatíveis. Quando você executa uma consulta união, os dados de cada conjunto de campos correspondentes são combinados em um único campo de saída, para que a saída da consulta tenha o mesmo número de campos das instruções SELECT.

    Observação: Em uma consulta união, os tipos de dados Número e Texto são compatíveis.

  • Uma consulta de união é específica de SQL e, portanto, deve ser gravada diretamente em SQL. Alterne para Modo SQL para gravar consultas específicas de SQL, incluindo as consultas união.

Sintaxe SQL de uma consulta união

Em uma consulta união, cada consulta seleção (também chamada de instrução SELECT) tem as seguintes cláusulas:

Cláusula

Contém uma lista de...

SELECT

campos contendo dados que você deseja recuperar.

FROM

tabelas que contêm esses campos.

WHERE opcional

critérios para esses campos.

As instruções SELECT são combinadas usando a palavra-chave união.

A sintaxe SQL básica para uma consulta união é a seguinte:

SELECT field_1[, field_2,…]
FROM table_1[, table_2,…]
UNION [ALL]
SELECT field_a[, field_b,...]
FROM table_a[, table_b,…];

Por exemplo, digamos que seu banco de dados tenha uma tabela chamada Produtos e outra chamada Serviços, e ambas as tabelas tenham campos que contêm o nome do produto ou serviço, o preço, garantia ou disponibilidade de garantia, e se você oferece o produto ou serviço exclusivamente. Embora a tabela Produtos armazene informações de garantia e a tabela Serviços armazene informações de garantia, as informações básicas são idênticas (quer um determinado produto ou serviço venha ou não com um promessa de qualidade). Você pode usar uma consulta união, como a apresentada a seguir, para combinar os quatro campos das duas tabelas:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services;

Vamos examinar o exemplo de sintaxe anterior linha por linha:

Sintaxe

Explicação

Informações adicionais

SELECT nome, preço, garantia_disponível, oferta_exclusiva

Primeira cláusula SELECT

SELECT é seguido por uma lista de identificadores que indica os campos dos quais você deseja recuperar dados.

Uma cláusula SELECT deve listar pelo menos um campo.

Essa cláusula lista os identificadores de campo name, price, warranty_available e exclusive_offer.

FROM Produtos

Primeira cláusula FROM

Uma cláusula FROM segue uma cláusula SELECT e, juntas, elas compõem uma instrução SELECT básica.

FROM é seguida de uma lista de identificadores que indica quais tabelas contêm os campos listados na cláusula SELECT.

Uma cláusula FROM deve listar pelo menos uma tabela.

Esta cláusula FROM lista o identificador de tabela Produtos.

UNION ALL

A palavra-chave UNION e a palavra-chave ALL opcional

Os resultados da instrução SELECT que precede união serão combinados com os resultados da instrução SELECT que vem após união.

Quando você usa a palavra-chave ALL, as linhas duplicadas não são removidas dos resultados da consulta união.

Usando a palavra-chave ALL, a consulta pode ser executada mais rapidamente, pois o Access não precisa verificar se há linhas duplicadas.

Use a palavra-chave ALL se qualquer uma das condições a seguir for verdadeira:

  • Você tem certeza de que as consultas seleção não produzirão nenhuma linha duplicada.

  • Não importa se os resultados têm linhas duplicadas.

  • Você deseja ver linhas duplicadas.

SELECT nome, preço, garantia_disponível, oferta_exclusiva

Segunda cláusula SELECT

Algumas regras:

  • A segunda cláusula SELECT deve ter o mesmo número de campos que a primeira cláusula SELECT.

  • Campos que compartilham dados comuns devem aparecer na mesma ordem na cláusula.

  • Campos que compartilham dados comuns devem ter tipos de dados iguais ou compatíveis.

Observação: Os nomes dos campos na saída de uma consulta união são provenientes da primeira cláusula SELECT. Portanto, no exemplo, os dados dos campos "warranty_available" e "guarantee_available" são denominados "warranty_available" na saída da consulta.

FROM Serviços;

Second FROM clause

Não há restrições nas tabelas das cláusulas FROM de uma consulta união. Você pode criar uma consulta união que use as mesmas tabelas em cada cláusula FROM. Você pode ter números diferentes de tabelas nas cláusulas FROM. No nosso exemplo, cada cláusula FROM tem apenas uma tabela.

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.

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.

×