O comando SQL UNION combina registros de duas ou mais tabelas em uma única tabela de re­sul­ta­dos, eli­mi­nando du­pli­ca­tas. Com ele, você torna-se capaz de reunir registros com­pa­tí­veis em uma mesma tabela, para consultas de dados mais efi­ci­en­tes e or­ga­ni­za­das.

O que é SQL UNION?

Seja com registros como in­for­ma­ções de clientes, preços ou produtos, dados de projetos ou fi­nan­cei­ros, a ma­nu­ten­ção de banco de dados complexos é um desafio. Isso inclui a ne­ces­si­dade de que ad­mi­nis­tra­do­res combinem registros re­la­ci­o­na­dos em tabelas de re­sul­ta­dos sig­ni­fi­ca­ti­vas. O comando SQL UNION é fre­quen­te­mente utilizado para isso. Usando UNION para consultas de dados, com­pa­ra­ções, análises ou mo­di­fi­ca­ções em registros, você pode combinar registros se­le­ci­o­na­dos de uma ou mais tabelas e remover possíveis du­pli­ca­tas.

Ao combinar UNION com outros comandos SQL e funções como ORDER BY, GROUP BY, WHERE ou HAVING, você cria es­tru­tu­ras de dados re­le­van­tes conforme critérios claros para suas análises, re­la­tó­rios ou atu­a­li­za­ções. Com funções agregadas como SQL AVG ou SQL SUM, você também pode combinar tabelas e ao mesmo tempo calcular e ordenar os re­sul­ta­dos conforme ne­ces­sá­rio.

Dica

Se você está começando agora a trabalhar com SQL, pode ser in­te­res­sante conhecer conceitos básicos dessa linguagem de banco de dados. Nossa in­tro­du­ção SQL com exemplos apresenta as prin­ci­pais funções e os fun­da­men­tos da linguagem.

Sintaxe de SQL UNION

A estrutura básica do comando SQL UNION é a seguinte:

SELECT  ColunaA, ColunaB, … ou *  FROM  TabelaA
UNION
SELECT ColunaA, ColunaB, … ou *  FROM  TabelaB
sql

Esses são os pa­râ­me­tros uti­li­za­dos:

  • SELECT: Com a palavra-chave SQL SELECT, você define as colunas que deseja combinar de duas tabelas. Com um asterisco *, você pode se­le­ci­o­nar todos os registros. O número de colunas se­le­ci­o­na­das deve ser idêntico em cada elemento SELECT de uma instrução UNION e estar na mesma ordem.

  • UNION: Combina os registros se­le­ci­o­na­dos de duas tabelas em uma tabela de re­sul­ta­dos.

Apli­ca­ções de SQL UNION

Se você deseja combinar registros re­la­ci­o­na­dos de forma simples, como arquivos de clientes, dados fi­nan­cei­ros ou in­for­ma­ções de produtos e projetos de maneira simples, o SQL UNION é a fer­ra­menta ideal. Em várias in­dús­trias, o comando SQL é utilizado, por exemplo, para as seguintes fi­na­li­da­des:

  • Criar dossiês digitais completos a partir de dados de clientes, projetos, pacientes ou pedidos.
  • Gerar re­la­tó­rios de vendas ou comparar dados de di­fe­ren­tes de­par­ta­men­tos.
  • Analisar com­por­ta­mento de compra para gerar leads.
  • Analisar e comparar dados fi­nan­cei­ros e de tran­sa­ções.
  • Remover du­pli­ca­tas de re­la­tó­rios ou registros com­bi­na­dos.
  • Avaliar quan­ti­da­des de produção, entregas ou estoque.
  • Agregar dados de pedidos e vendas para iden­ti­fi­car ten­dên­cias ou realizar análises de marketing.
Dica

Ar­ma­ze­na­mento de dados seguro, de­sem­pe­nho escalável e planos de servidor e hos­pe­da­gem adaptados às suas ne­ces­si­da­des: Conheça o SQL Server Hosting da IONOS. Escolha entre ser­vi­do­res em nuvem, VPS, ser­vi­do­res dedicados e hos­pe­da­gem Linux, com toda segurança de dados.

VPS Hosting (Virtual Private Servers)
World-class VPS at America’s lowest price

Hos­pe­da­gem VPS poderosa e de baixo custo para rodar suas apli­ca­ções sob medida, com as­sis­tente pessoal e suporte 24 horas.

  • Save 50% or more vs leading hosts
  • Unlimited traffic & no setup fees 
  • 99.99% uptime gua­ran­teed
  • Free 24/7 premium support 

Exemplos de aplicação de SQL UNION

Nossos exemplos práticos ilustram de maneira simples como combinar registros de forma eficiente com SQL UNION.

Combinar dois conjuntos de dados em uma tabela

Suponha que você deseja combinar os registros das tabelas “As­si­nan­tes” e “Clientes” em uma tabela de re­sul­ta­dos sem du­pli­ca­tas, usando colunas como “Nome”, “Endereço” e “ID do Cliente”. Faça isso da seguinte maneira:

SELECT  Nome, Endereço, ID_Cliente
FROM  Assinantes
UNION
SELECT  Nome, Endereço, ID_Cliente
FROM  Clientes
sql

Combinar dados de fun­ci­o­ná­rios de di­fe­ren­tes de­par­ta­men­tos

Se você deseja combinar dados de fun­ci­o­ná­rios dos de­par­ta­men­tos de “Marketing” e “Vendas” usando colunas como “Nome” e “Cidade”, faça o seguinte:

SELECT  Nome, Cidade
FROM  Marketing
UNION
SELECT  Nome, Cidade
FROM  Vendas
sql

Combinar dois conjuntos de dados com UNION ALL

Neste exemplo, ilus­tra­mos como funciona o UNION ALL que, ao contrário do comando UNION, gera uma tabela de re­sul­ta­dos com todos os registros, incluindo du­pli­ca­tas. Vamos supor uma tabela “Clientes” e uma tabela “For­ne­ce­do­res”, que você deseja combinar com a condição de que os clientes e for­ne­ce­do­res sejam de “Londrina”. Proceda da seguinte maneira:

SELECT  Nome, Cidade
FROM  Clientes
WHERE  Cidade  =  'Londrina'
UNION ALL
SELECT  Nome, Cidade
FROM  Fornecedores
WHERE  Cidade  =  'Londrina'
GROUP BY  Cidade;
sql

Al­ter­na­ti­vas a SQL UNION

Para combinar dados sem du­pli­ca­tas, além do UNION, existem outras opções que podem ser uti­li­za­das. Aqui estão as mais im­por­tan­tes:

  • JOIN: Com o comando SQL JOIN, você pode combinar, consultar e vincular dados entre tabelas. Existem comandos como INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN e CROSS JOIN. Com ins­tru­ções JOIN, você pode combinar registros de duas tabelas de maneira mais di­re­ci­o­nada e flexível do que com UNION, uma vez que pode definir condições usando a cláusula ON.

  • GROUP BY: Com SQL GROUP BY, você agrupa registros se­le­ci­o­na­dos de colunas e tabelas com valores idênticos em uma tabela de re­sul­ta­dos.

  • ORDER BY: Com o comando SQL ORDER BY, você define a ordem dos registros em uma tabela de re­sul­ta­dos.

  • SELECT DISTINCT: Com o comando SQL SELECT DISTINCT, você pode gerar uma tabela de re­sul­ta­dos com apenas re­sul­ta­dos de consulta ex­clu­si­vos, sem du­pli­ca­tas, de maneira se­me­lhante ao UNION.

  • UNION ALL: O comando UNION ALL funciona de forma se­me­lhante ao UNION, mas combina todos os registros da tabela se­le­ci­o­nada, incluindo possíveis du­pli­ca­tas.

Ir para o menu principal