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

Cláusula UNION do MySQL

A cláusula `UNION` no MySQL é usada para combinar os conjuntos de resultados de duas ou mais consultas `SELECT` em um único conjunto de resultados. Isso garante que os resultados sejam distintos, eliminando as linhas duplicadas.

Uso

A cláusula `UNION` é aplicada quando você precisa mesclar as saídas de vários comandos `SELECT`, que devem ter o mesmo número de colunas e tipos de dados compatíveis. Ele simplifica a recuperação de dados de várias consultas.

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

Nessa sintaxe, `UNION` é usado para concatenar os resultados das instruções `SELECT` de `table1` e `table2`.

Exemplos

1. União básica

SELECT city
FROM customers
UNION
SELECT city
FROM suppliers;

Esse exemplo combina cidades das tabelas `customers` e `suppliers`, removendo quaisquer duplicatas.

2. UNION com filtros diferentes

SELECT product_name
FROM products
WHERE stock > 50
UNION
SELECT product_name
FROM discontinued_products
WHERE discontinued_date > '2023-01-01';

Aqui, a união combina nomes de produtos da tabela `products` em que o estoque é maior que 50 com nomes de produtos da tabela `discontinued_products` que foram descontinuados após 1º de janeiro de 2023.

3. UNION ALL para incluir duplicatas

SELECT employee_id, name
FROM full_time_employees
UNION ALL
SELECT employee_id, name
FROM part_time_employees;

Nesse caso, o `UNION ALL` inclui todas as duplicatas, mostrando todos os funcionários das tabelas `full_time_employees` e `part_time_employees`.

4. UNION com ORDER BY

SELECT department
FROM departments
UNION
SELECT department
FROM archived_departments
ORDER BY department;

Este exemplo demonstra o uso de `ORDER BY` para classificar os resultados combinados dos departamentos de `departments` e `archived_departments`.

Dicas e práticas recomendadas

  • Garanta a compatibilidade da coluna. O número e os tipos de dados das colunas em cada instrução `SELECT` devem corresponder. Colunas incompatíveis podem levar a erros.
  • Use UNION ALL para obter desempenho. Se as duplicatas forem aceitáveis, use `UNION ALL`, pois é mais rápido, uma vez que não remove duplicatas.
  • Ordene os resultados adequadamente. Use `ORDER BY` apenas uma vez após a instrução `SELECT` final para classificar todo o resultado da união.
  • Otimize as consultas individuais. Certifique-se de que cada consulta `SELECT` seja otimizada para desempenho antes de usar o `UNION`.
  • Considere o tamanho do conjunto de dados. Conjuntos de dados maiores podem afetar o desempenho; considere a possibilidade de dividir as consultas ou usar índices para otimização.

Tratamento de erros

Esteja ciente dos possíveis erros ou avisos se houver uma incompatibilidade no número de colunas ou tipos de dados entre as instruções `SELECT`. Garanta a compatibilidade da coluna para evitar esses problemas.

Aprimoramento de SQL para iniciantes

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