12. Unir des tables

Ce chapitreporte sur les unions. Les jointures permettent de combiner et d'associer des données à partir de différentes tables de manière horizontale, tandis que les unions offrent la possibilité de regrouper des résultats provenant de plusieurs requêtes de manière verticale.

L'opérateur UNION est utilisé pour combiner les résultats d'au moins 2 requêtes commençant par la clause SELECT en un seul ensemble de résultats. Nous allons distinguer UNION et UNION ALL.

UNION

L'opérateur UNION renvoie uniquement les lignes distinctes présentes dans les résultats combinés de toutes les requêtes SELECT. Les doublons sont automatiquement éliminés. Pour comprendre comment utiliser cet opérateur, utilisons un exemple avec 2 tables fictives :


La table employee

employeeID employeeName department
1 John Doe Sales
2 Jane Smith Marketing
3 Bob Johnson Finance


La table manager

employeeID employeeName department managerLevel
4 Alice Brown Sales 2
5 Charlie White Marketing 1
6 David Black Finance 3


L'opérateur UNION est utilisé dans la requête ci-dessous pour combiner les informations des tables employee et manager.

SELECT employeeID, employeeName, department
FROM employees
UNION
SELECT employeeID, employeeName, department
FROM managers;

Le résultat est le suivant :

employeeID employeeName department
1 John Doe Sales
2 Jane Smith Marketing
3 Bob Johnson Finance
4 Alice Brown Sales
5 Charlie White Marketing
6 David Black Finance

Il n'y a pas de doublon dans le résultat affiché.



Question 12.1

Utiliser les tables order1, order2 et order3 situées dans la base de données northWind pour afficher toutes les commandes dans une seule table. Pour accéder à la console SQL.

Question 12.2

Reprendre le résultat de la question précédente et ajouter une colonne appelée source qui prendra la valeur 'order1', 'order2' ou 'order3' en fonction de la table source de la ligne. Pour accéder à la console SQL.

Indice Le chapitre 6 montre comment ajouter [une constante](06manipChamps/#ajout-de-constantes) comme nouveau champ.

UNION ALL

L'opérateur UNION élimine automatiquement les doublons des résultats combinés, ce qui peut entraîner un coût de performance supplémentaire car le système doit identifier et supprimer les duplicatas. En revanche, l'opérateur UNION ALL ne supprime pas les doublons et renvoie toutes les lignes des résultats combinés, ce qui peut être plus rapide car il évite cette étape de déduplication.

Question 12.3

Est-ce qu'il y a des doublons entre les lignes des tables order1, order2 et order3? Pour accéder à la console SQL.

Indice Comparer le nombre de ligne en utilisant UNION et UNION ALL.


En résumé, l'utilisation de l'opérateur UNION ALL est une option à privilégier si le fait d'avoir des doublons n'est pas dérangeant et que la performance est une priorité. Sinon l'opérateur UNION permet d'éliminer automatiquement les doublons.

Question 12.4

Quelle option est plus appropriée ici UNION ou UNION ALL ? Pourquoi ?

SQL Console

Category Num Sales Usd
ABC 123 $26.4M
No Results
Retourner vers :

Question 12.1
Question 12.2