Clause Union
Nous avons attiré l'attention d'un client qui a besoin de requêtes SQL. Avant d'aborder les JOINs, découvrons la clause UNION, essentielle pour combiner plusieurs tables.
Voici quelques points importants à connaître concernant l'utilisation de UNION :
-
Nombre et ordre des colonnes : toutes les requêtes combinées avec
UNIONdoivent comporter 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 mieux comprendre comment combiner correctement des tables à l'aide de la clause UNION, une table supplémentaire a été introduite, contenant des informations sur les contractors.
Il n'y a pas beaucoup d'informations ici, seulement les champs first_name, last_name et 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’afficher une liste de tous les prénoms et noms de famille des employés et prestataires 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
Analyse détaillée de ce qui se passe :
Deux requêtes distinctes retournent chacune trois colonnes de mêmes types de données. L’objectif est d’afficher l’Id, le first_name et le last_name de toutes les personnes de l’entreprise. La colonne Id a également été renommée afin que les deux requêtes présentent les mêmes noms de colonnes.
Ensuite, la clause UNION permet de fusionner 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.
Note
Le tri s’effectue sur la colonne
Id, qui est une colonne commune aux deux tables.
Après utilisation de UNION, une "requête unique étendue" est obtenue, pouvant être manipulée davantage avec des clauses telles que ORDER BY.
Il n'est pas possible d'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 illustrant cette méthode :
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 une plus grande flexibilité. Cette approche peut sembler complexe au début, mais sa maîtrise facilite considérablement la rédaction de requêtes avancées.
1. Quelles colonnes sont requises lors de l'utilisation de la clause UNION en SQL ?
2. Comment la clause UNION traite-t-elle les lignes dupliquées 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
Can you explain the difference between UNION and UNION ALL?
How do I know when to use a subquery with UNION?
Can you show more examples of using UNION with different tables?
Génial!
Completion taux amélioré à 4
Clause Union
Glissez pour afficher le menu
Nous avons attiré l'attention d'un client qui a besoin de requêtes SQL. Avant d'aborder les JOINs, découvrons la clause UNION, essentielle pour combiner plusieurs tables.
Voici quelques points importants à connaître concernant l'utilisation de UNION :
-
Nombre et ordre des colonnes : toutes les requêtes combinées avec
UNIONdoivent comporter 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 mieux comprendre comment combiner correctement des tables à l'aide de la clause UNION, une table supplémentaire a été introduite, contenant des informations sur les contractors.
Il n'y a pas beaucoup d'informations ici, seulement les champs first_name, last_name et 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’afficher une liste de tous les prénoms et noms de famille des employés et prestataires 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
Analyse détaillée de ce qui se passe :
Deux requêtes distinctes retournent chacune trois colonnes de mêmes types de données. L’objectif est d’afficher l’Id, le first_name et le last_name de toutes les personnes de l’entreprise. La colonne Id a également été renommée afin que les deux requêtes présentent les mêmes noms de colonnes.
Ensuite, la clause UNION permet de fusionner 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.
Note
Le tri s’effectue sur la colonne
Id, qui est une colonne commune aux deux tables.
Après utilisation de UNION, une "requête unique étendue" est obtenue, pouvant être manipulée davantage avec des clauses telles que ORDER BY.
Il n'est pas possible d'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 illustrant cette méthode :
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 une plus grande flexibilité. Cette approche peut sembler complexe au début, mais sa maîtrise facilite considérablement la rédaction de requêtes avancées.
1. Quelles colonnes sont requises lors de l'utilisation de la clause UNION en SQL ?
2. Comment la clause UNION traite-t-elle les lignes dupliquées par défaut ?
Merci pour vos commentaires !