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
-
Selecionando Colunas:
- Começamos com
SELECT ColumnA FROM Table1
para recuperar todas as entradas deColumnA
emTable1
. - A próxima parte,
SELECT ColumnA FROM Table2
, faz o mesmo paraTable2
.
- Começamos com
-
Combinando Resultados:
- O operador
UNION
mescla os conjuntos de resultados de ambas as instruçõesSELECT
. - Observe que, por padrão, o
UNION
remove valores duplicados, então se houver qualquer sobreposição nos valores deColumnA
entre as duas tabelas, eles aparecerão apenas uma vez na saída final.
- O operador
-
Ordenando os Resultados:
- A cláusula
ORDER BY 1
ordena a saída final pela primeira coluna, que, neste caso, éColumnA
.
- A cláusula
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!