Union
Em PostgreSQL, a cláusula UNION é usada para combinar os resultados de duas ou mais consultas em um único conjunto de resultados. As consultas dentro da cláusula UNION devem ter o mesmo número de colunas e os tipos de dados correspondentes nas colunas devem ser compatíveis. A cláusula UNION remove automaticamente duplicatas dos resultados, a menos que seja usado UNION ALL, que inclui todas as linhas, inclusive as duplicadas.
Sintaxe básica:
SELECT coluna1, coluna2, ...
FROM tabela1
WHERE condição
UNION
SELECT coluna1, coluna2, ...
FROM tabela2
WHERE condição;
Neste exemplo, duas consultas são combinadas usando a cláusula UNION. O conjunto de resultados conterá todas as linhas únicas que são retornadas pelas duas consultas.
Exemplo prático:
Suponha que você tenha duas tabelas chamadas clientes_antigos
e clientes_novos
, e você deseja obter uma lista de todos os clientes (sem duplicatas) que estão em ambas as tabelas:
SELECT nome, email
FROM clientes_antigos
UNION
SELECT nome, email
FROM clientes_novos;
Se você quiser incluir todas as linhas, incluindo as duplicatas, você pode usar UNION ALL:
SELECT nome, email
FROM clientes_antigos
UNION ALL
SELECT nome, email
FROM clientes_novos;
Neste caso, UNION ALL retornará todas as linhas das duas tabelas, incluindo duplicatas, se houver.
Lembre-se de que as consultas dentro da cláusula UNION devem ter o mesmo número de colunas e os tipos de dados nas colunas correspondentes devem ser compatíveis.