Pular para o conteúdo principal
Documentos
FunçõesExpressõesKeywordsDeclaraçõesCláusulas

Cláusula UNION ALL do MySQL

A cláusula `UNION ALL` no MySQL é usada para combinar os resultados de duas ou mais instruções `SELECT`. Ao contrário do `UNION`, ele inclui linhas duplicadas no conjunto de resultados finais.

Uso

A cláusula `UNION ALL` é usada quando você precisa combinar resultados de várias consultas sem remover entradas duplicadas. É particularmente útil para agregar conjuntos de dados em que as duplicatas são significativas e devem ser preservadas.

SELECT column1, column2, ...
FROM table1
UNION ALL
SELECT column1, column2, ...
FROM table2;

Nessa sintaxe, `UNION ALL` mescla os resultados de ambas as instruções `SELECT`, incluindo quaisquer linhas duplicadas.

Exemplos

1. Básico UNION ALL

SELECT name FROM students
UNION ALL
SELECT name FROM alumni;

Esse exemplo combina nomes das tabelas `students` e `alumni`, incluindo duplicatas se algum nome aparecer em ambas as tabelas.

2. UNION ALL com colunas diferentes

SELECT id, name FROM employees
UNION ALL
SELECT employee_id, full_name FROM contractors;

Aqui, o `UNION ALL` mescla as colunas `id` e `name` de `employees` com `employee_id` e `full_name` de `contractors`. Ambas as consultas devem ter o mesmo número de colunas na mesma ordem, e seus tipos de dados devem ser compatíveis para evitar erros.

3. Usando UNION ALL com condições

SELECT product_id, description FROM products WHERE category = 'Electronics'
UNION ALL
SELECT product_id, description FROM discontinued_products WHERE category = 'Electronics';

Esse exemplo combina produtos e produtos descontinuados na categoria "Eletrônicos", mantendo todas as duplicatas.

4. Usando UNION ALL com ORDER BY

SELECT id, name FROM employees
UNION ALL
SELECT employee_id, full_name FROM contractors
ORDER BY name;

Este exemplo demonstra a aplicação de `ORDER BY` ao conjunto de resultados finais para garantir que os resultados combinados sejam classificados por nome.

Dicas e práticas recomendadas

  • Garanta a compatibilidade da coluna. Para evitar erros, todos os comandos `SELECT` devem ter o mesmo número de colunas com tipos de dados compatíveis.
  • Preservar duplicatas significativas. Use `UNION ALL` quando as linhas duplicadas forem benéficas para suas necessidades de análise ou relatório.
  • Otimizar o desempenho da consulta. Esteja ciente de que o uso do `UNION ALL` com grandes conjuntos de dados pode afetar o desempenho; considere a indexação de colunas críticas. Utilize a instrução `EXPLAIN` para analisar o plano de consulta em busca de oportunidades de otimização.
  • Use a ordenação explícita. Se a ordem for importante, aplique `ORDER BY` ao conjunto de resultados final, não a consultas individuais dentro do `UNION ALL`.
  • Tratamento de erros. Certifique-se de que as colunas em todas as instruções `SELECT` tenham contagens correspondentes e tipos de dados compatíveis para evitar erros de tempo de execução.

Aprimoramento de SQL para iniciantes

Adquira as habilidades de SQL para interagir com seus dados e consultá-los.
Comece a aprender de graça