Accéder au contenu principal
Documents
FonctionsExpressionsKeywordsDéclarationsClauses

Clause UNION de MySQL

La clause `UNION` de MySQL est utilisée pour combiner les résultats de deux ou plusieurs requêtes `SELECT` en un seul résultat. Il garantit que les résultats sont distincts, en éliminant les lignes en double.

Utilisation

La clause `UNION` est appliquée lorsque vous devez fusionner les résultats de plusieurs instructions `SELECT`, qui doivent avoir le même nombre de colonnes et des types de données compatibles. Il simplifie la recherche de données à partir de requêtes multiples.

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

Dans cette syntaxe, `UNION` est utilisé pour concaténer les résultats des instructions `SELECT` de `table1` et `table2`.

Exemples

1. UNION de base

SELECT city
FROM customers
UNION
SELECT city
FROM suppliers;

Cet exemple combine les villes des tableaux `customers` et `suppliers`, en supprimant les doublons.

2. UNION avec différents filtres

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

Ici, l'union combine les noms de produits du tableau `products` dont le stock est supérieur à 50 avec les noms de produits du tableau `discontinued_products` qui ont été abandonnés après le 1er janvier 2023.

3. UNION ALL pour inclure les doublons

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

Dans ce cas, `UNION ALL` inclut tous les doublons, montrant chaque employé des tableaux `full_time_employees` et `part_time_employees`.

4. UNION avec ORDER BY

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

Cet exemple démontre l'utilisation de `ORDER BY` pour trier les résultats combinés des départements provenant à la fois de `departments` et de `archived_departments`.

Conseils et bonnes pratiques

  • Assurez-vous de la compatibilité des colonnes. Le nombre et le type de données des colonnes de chaque instruction `SELECT` doivent correspondre. La non-concordance des colonnes peut entraîner des erreurs.
  • Utilisez UNION ALL pour des raisons de performance. Si les doublons sont acceptables, utilisez `UNION ALL` qui est plus rapide puisqu'il ne supprime pas les doublons.
  • Classez les résultats de manière appropriée. Utilisez `ORDER BY` une seule fois après l'instruction `SELECT` finale pour trier l'ensemble du résultat de l'union.
  • Optimisez les requêtes individuelles. Assurez-vous que chaque requête `SELECT` est optimisée pour la performance avant d'utiliser `UNION`.
  • Tenez compte de la taille de l'ensemble des données. Les grands ensembles de données peuvent avoir un impact sur les performances ; envisagez de décomposer les requêtes ou d'utiliser des index pour les optimiser.

Gestion des erreurs

Soyez attentif aux erreurs potentielles ou aux avertissements s'il y a une incohérence dans le nombre de colonnes ou les types de données entre les instructions `SELECT`. Veillez à la compatibilité des colonnes pour éviter ces problèmes.

Amélioration de SQL pour les débutants

Acquérir les compétences SQL pour interagir avec vos données et les interroger.
Commencez à apprendre gratuitement