Clause Union
Glissez pour afficher le menu
Vous avez attiré l'attention d'un client ayant besoin de requêtes SQL. Avant d'aborder les JOINs, vous allez découvrir la clause UNION, essentielle pour combiner plusieurs tables.
UNION en SQL est utilisé pour combiner les résultats de deux ou plusieurs requêtes SELECT en un seul ensemble de résultats. Cela permet de fusionner les lignes issues de plusieurs requêtes dans un seul ensemble de données.
Voici quelques points importants à connaître sur l'utilisation de UNION :
-
Nombre et ordre des colonnes : toutes les requêtes combinées avec
UNIONdoivent avoir le même nombre de colonnes dans le même ordre ; -
Types de données : les colonnes de chaque requête doivent avoir des types de données compatibles ;
-
Lignes uniques : par défaut,
UNIONsupprime les lignes en double. UtilisezUNION ALLsi vous souhaitez conserver les doublons.
Pour une meilleure compréhension de la manière de combiner correctement des tables à l'aide de la clause UNION, une table supplémentaire contenant des informations sur les contractors a été introduite.
Il n'y a pas beaucoup d'informations ici, seulement le first_name, le last_name et l'email.
Vous pouvez constater que cette table présente des similitudes avec la table employees. En utilisant la clause UNION, il est possible de combiner ces deux tables afin, par exemple, d'obtenir une liste de tous les noms et prénoms des employees et contractors impliqués dans l'entreprise.
Pour cela, la clause UNION sera utilisée :
12345678(SELECT employee_id as id, first_name, last_name FROM employees) UNION (SELECT contractor_id as id, first_name, last_name FROM contractors) ORDER BY id
Il y a deux requêtes qui renvoient chacune trois colonnes avec les mêmes types de données. L'objectif est d'afficher les Id, first_name et last_name de toutes les personnes dans l'entreprise. La colonne Id a également été renommée afin que les deux requêtes aient les mêmes noms de colonnes.
UNION combine les résultats de ces requêtes, en supprimant les doublons (même s'il n'y en a pas ici).
Enfin, les résultats sont triés par Id à l'aide de ORDER BY.
Les résultats sont triés par Id, qui est une colonne commune aux deux tables.
Après avoir utilisé UNION, vous obtenez une « grande requête unique » que vous pouvez ensuite manipuler avec des clauses comme ORDER BY.
Vous ne pouvez pas utiliser directement WHERE ou GROUP BY avec des tables combinées à l'aide de UNION. Pour appliquer ces clauses, il est nécessaire d'utiliser une sous-requête dans la section FROM. Voici un exemple de la façon de procéder :
123456789SELECT id, first_name, last_name FROM ( SELECT employee_id AS id, first_name, last_name FROM employees UNION SELECT contractor_id AS id, first_name, last_name FROM contractors ) AS combined WHERE first_name = 'Jane'
L'utilisation d'une sous-requête dans la section FROM offre plus de flexibilité ! Cela peut sembler complexe au début, mais maîtriser cette technique facilitera grandement l'écriture de requêtes complexes.
1. Quelles conditions les ensembles de résultats doivent-ils remplir pour être combinés avec UNION ?
2. Comment la clause UNION traite-t-elle les lignes en double par défaut ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion