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.