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.
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
UNIONSELECT city
FROM suppliers;Tecnologia
Esse exemplo combina cidades das tabelas `customers` e `suppliers`, removendo quaisquer duplicatas.
2. UNION com filtros diferentes
SELECT product_name
FROM products
WHERE stock >50UNIONSELECT product_name
FROM discontinued_products
WHERE discontinued_date >'2023-01-01';Tecnologia
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
UNIONALLSELECT employee_id, name
FROM part_time_employees;Tecnologia
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
UNIONSELECT department
FROM archived_departments
ORDERBY department;Tecnologia
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.
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.
Nessa sintaxe, `UNION` é usado para concatenar os resultados das instruções `SELECT` de `table1` e `table2`.
Exemplos
1. União básica
Esse exemplo combina cidades das tabelas `customers` e `suppliers`, removendo quaisquer duplicatas.
2. UNION com filtros diferentes
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
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
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
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.