Selecionando e Combinando Colunas de Duas Tabelas SQL

Ao trabalhar com bancos de dados, é comum encontrar situações em que você precisa recuperar dados de várias tabelas. Um desses cenários surge quando você possui duas tabelas com uma coluna comum. Neste post de blog, exploraremos como selecionar uma coluna específica, ColumnA, de duas tabelas diferentes—Table1 e Table2—e retorná-la como um único conjunto de resultados.

O Problema

Suponha que você tenha duas tabelas em seu banco de dados:

  • Table1 contém uma coluna chamada ColumnA com os valores:

    • a
    • b
    • c
  • Table2 também contém uma coluna chamada ColumnA com os valores:

    • d
    • e
    • f

Seu objetivo é extrair todas as instâncias de ColumnA de ambas as tabelas em uma única coluna no conjunto de resultados. Isso significa que você deseja que a saída exiba:

a
b
c
d
e
f

A Solução

Para conseguir isso, podemos usar uma consulta SQL com o operador UNION. O operador UNION permite combinar os resultados de duas ou mais instruções SELECT em um único conjunto de resultados.

Exemplo de Consulta SQL

Aqui está a consulta SQL que realiza essa tarefa:

SELECT ColumnA FROM Table1 
UNION 
SELECT ColumnA FROM Table2 
ORDER BY 1;

Analisando a Consulta

  1. Selecionando Colunas:

    • Começamos com SELECT ColumnA FROM Table1 para recuperar todas as entradas de ColumnA em Table1.
    • A próxima parte, SELECT ColumnA FROM Table2, faz o mesmo para Table2.
  2. Combinando Resultados:

    • O operador UNION mescla os conjuntos de resultados de ambas as instruções SELECT.
    • Observe que, por padrão, o UNION remove valores duplicados, então se houver qualquer sobreposição nos valores de ColumnA entre as duas tabelas, eles aparecerão apenas uma vez na saída final.
  3. Ordenando os Resultados:

    • A cláusula ORDER BY 1 ordena a saída final pela primeira coluna, que, neste caso, é ColumnA.

Quando Usar UNION ALL

Se você tiver certeza de que os valores em ColumnA de Table1 e Table2 nunca vão se sobrepor, considere usar UNION ALL em vez de UNION. Esta opção evita o custo adicional de verificação de duplicatas e pode melhorar o desempenho:

SELECT ColumnA FROM Table1 
UNION ALL 
SELECT ColumnA FROM Table2 
ORDER BY 1;

Resumo

Em resumo, combinar dados de várias tabelas em SQL pode ser tratado de forma eficiente usando o operador UNION. Esta prática não apenas simplifica a recuperação de dados, mas também torna suas consultas no banco de dados mais robustas e flexíveis.

Agora você pode extrair e mesclar colunas facilmente de tabelas diferentes, aprimorando sua capacidade de gerenciar e analisar seus dados de forma eficaz!