Aller au contenu
Opérations ensemblistes

UNION / UNION ALL

UNION empile les lignes de deux requêtes compatibles en un seul résultat. UNION supprime les doublons, UNION ALL les garde et va plus vite. Utile pour fusionner des listes de même nature.

  • combiner
  • empiler
  • ensemble
  • UNION ALL

Syntaxe

Modèle
SELECT col1, col2 FROM table_aUNION [ALL]SELECT col1, col2 FROM table_bORDER BY col1;

Exemple

Exemple concret
SELECT name, 'professeur' AS role FROM teachersUNION ALLSELECT name, 'élève' FROM studentsORDER BY name;-- Jeu de données : école-- Annuaire unique des personnes de l'établissement-- Résultat attendu :-- Alice Leroy | élève-- Bob Petit | élève-- Clara Moreau | élève-- David Roux | élève-- Emma Blanc | élève-- Jean Martin | professeur-- Marie Dupont | professeur-- Sophie Bernard | professeur

À retenir

  1. Les requêtes doivent avoir le même nombre de colonnes, de types compatibles. Les noms de colonnes du résultat sont ceux de la première requête.
  2. Une colonne constante ('professeur' AS role) indique la provenance de chaque ligne.
  3. Piège : UNION dédoublonne des lignes entières. Deux personnes homonymes sans colonne distinctive fusionneraient en une seule ligne. Utilisez UNION ALL quand les doublons sont légitimes.
  4. Piège : ORDER BY ne s'écrit qu'une fois, à la fin, et trie le résultat combiné. Un ORDER BY dans la première requête provoque une erreur.

Voir aussi