SQL UNION ALL

La commande UNION ALL de SQL est très similaire à la commande UNION. Elle permet de concaténer les enregistrements de plusieurs requêtes, à la seule différence que cette commande permet d’inclure tous les enregistrements, même les doublons. Ainsi, si un même enregistrement est présents normalement dans les résultats des 2 requêtes concaténées, alors l’union des 2 avec UNION ALL retournera 2 fois ce même résultat.

A savoir : tout comme la commande UNION, il convient que les 2 requêtes retournes exactement le même nombre de colonnes, avec les mêmes types de données et dans le même ordre.

Syntaxe

La syntaxe de la requête SQL pour unir les résultats des 2 tables est la suivante:

SELECT * FROM table1
UNION ALL
SELECT * FROM table2

Exemple

Imaginons une entreprise qui possède des bases de données dans chacun de ces magasins. Sur ces bases de données il y a une table de la liste des clients avec quelques informations et le total des achats dans l’entreprise.

La table « magasin1_client » correspond au premier magasin :

[table id =42 /]

La table « magasin2_client » correspond au deuxième magasin :

[table id =43 /]

Pour concaténer les tous les enregistrements de ces tables, il est possible d’effectuer une seule requête utilisant la commande UNION ALL, comme l’exemple ci-dessous :

SELECT * FROM magasin1_client
UNION ALL
SELECT * FROM magasin2_client

Résultat :

[table id =44 /]

Le résultat de cette requête montre qu’il y a autant d’enregistrement que dans les 2 tables réunis. A savoir, il y a quelques clients qui étaient présents dans les 2 tables d’origines en conséquent ils sont présent 2 fois dans le résultat de cette requête SQL.

Partager