Skip to content

UNION – Concaténer sans doublons

Bonne lecture et bon apprentissage !
Junior TSAFACK – 08/08/2026
⏱️ Temps de lecture estimé : 5 minutes


La commande UNION de SQL permet de mettre bout-à-bout les résultats de plusieurs requêtes utilisant elles-mêmes la commande SELECT. C’est donc une commande qui permet de concaténer les résultats de 2 requêtes ou plus. Pour l’utiliser, il est nécessaire que chacune des requêtes à concaténer retourne le même nombre de colonnes, avec les mêmes types de données et dans le même ordre.

Bon à savoir : Par défaut, les enregistrements exactement identiques ne seront pas répétés dans les résultats. Pour effectuer une union dans laquelle même les lignes dupliquées sont affichées, il faut plutôt utiliser la commande UNION ALL.


La syntaxe pour unir les résultats de 2 tableaux sans afficher les doublons est la suivante :

SELECT * FROM table1
UNION
SELECT * FROM table2;

L’union de 2 ensembles A et B est un concept qui consiste à obtenir tous les éléments qui correspondent à la fois à l’ensemble A ou à l’ensemble B. Cela se résume très simplement par un schéma où la zone bleue correspond à l’ensemble de tous les éléments à obtenir :

┌─────────────────────────────────────┐
│ UNION │
│ ┌──────────┐ ┌──────────┐ │
│ │ A │ │ B │ │
│ │ ┌────┐ │ │ ┌────┐ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ └────┘ │ │ └────┘ │ │
│ └──────────┘ └──────────┘ │
│ Tous les éléments │
│ (A ∪ B = tous les éléments) │
└─────────────────────────────────────┘

Imaginons une entreprise qui possède plusieurs magasins. Dans chacun de ces magasins, une table liste les clients :

prenom nom ville date_naissance total_achat
Léon Dupuis Paris 1983-03-06 135
Marie Bernard Paris 1993-07-03 75
Sophie Dupond Marseille 1986-02-22 27
Marcel Martin Paris 1976-11-24 39
prenom nom ville date_naissance total_achat
Marion Leroy Lyon 1982-10-27 285
Paul Moreau Lyon 1976-04-19 133
Marie Bernard Paris 1993-07-03 75
Marcel Martin Paris 1976-11-24 39

Sachant que certains clients sont présents dans les deux tables, pour éviter de retourner plusieurs fois les mêmes enregistrements, il convient d’utiliser la requête UNION :

SELECT * FROM magasin1_client
UNION
SELECT * FROM magasin2_client;
prenom nom ville date_naissance total_achat
Léon Dupuis Paris 1983-03-06 135
Marie Bernard Paris 1993-07-03 75
Sophie Dupond Marseille 1986-02-22 27
Marcel Martin Paris 1976-11-24 39
Marion Leroy Lyon 1982-10-27 285
Paul Moreau Lyon 1976-04-19 133

Le résultat de cette requête montre bien que les enregistrements des deux requêtes sont mis bout à bout sans inclure plusieurs fois les mêmes lignes. Les clients « Marie Bernard » et « Marcel Martin » ne sont présents qu’une seule fois, bien qu’ils apparaissent dans les deux tables.


Les requêtes doivent retourner le même nombre de colonnes :

-- ✅ Valide
SELECT id, nom FROM table1
UNION
SELECT id, nom FROM table2;
-- ❌ Invalide (nombre de colonnes différent)
SELECT id, nom, prenom FROM table1
UNION
SELECT id, nom FROM table2;

Les colonnes correspondantes doivent avoir des types de données compatibles :

-- ✅ Valide (si id est INT et nom est VARCHAR)
SELECT id, nom FROM table1
UNION
SELECT id, nom FROM table2;
-- ❌ Invalide (types incompatibles)
SELECT id, nom FROM table1 -- id: INT, nom: VARCHAR
UNION
SELECT nom, id FROM table2; -- nom: VARCHAR, id: INT

L’ordre des colonnes doit être le même :

-- ✅ Valide
SELECT id, nom, ville FROM table1
UNION
SELECT id, nom, ville FROM table2;
-- ❌ Invalide (ordre des colonnes différent)
SELECT id, nom, ville FROM table1
UNION
SELECT ville, id, nom FROM table2;

Le résultat d’un UNION n’est pas trié par défaut. Si vous souhaitez un ordre spécifique, utilisez ORDER BY sur le résultat final :

SELECT * FROM magasin1_client
UNION
SELECT * FROM magasin2_client
ORDER BY nom, prenom;

Caractéristique UNION UNION ALL
Doublons Supprimés Conservés
Performance Plus lent (doit vérifier les doublons) Plus rapide
Cas d’usage Quand on veut une liste unique Quand on veut toutes les lignes

Vous savez désormais comment concaténer des résultats sans doublons avec UNION. Mais que faire si vous souhaitez conserver tous les enregistrements, y compris les doublons ?

👉 Chapitre 17 : UNION ALL – Concaténer avec doublons

Bonne continuation !


Junior TSAFACK – 08/08/2026