UNION vs UNION ALL
Fait partie de la section Au-delà des bases du Journey SQL de Coddy — leçon 16 sur 27.
Vous avez découvert UNION dans Fundamentals : il empile deux ensembles de résultats l'un sur l'autre. Par défaut, il supprime également les doublons, ce qui nécessite un tri supplémentaire.
SELECT name FROM authors
UNION
SELECT name FROM editorsUNION ALL effectue le même empilement mais conserve les doublons. C'est plus rapide et c'est presque toujours ce que vous voulez quand vous savez que les deux côtés ne peuvent pas produire la même ligne, ou quand vous voulez réellement compter chaque occurrence.
SELECT name FROM authors
UNION ALL
SELECT name FROM editorsLes deux côtés doivent retourner le même nombre de colonnes, dans le même ordre, avec des types compatibles.
Défi
FacileTables et colonnes disponibles :
<strong>online_orders</strong>:<strong>order_no</strong>,<strong>amount</strong><strong>retail_orders</strong>:<strong>ticket_no</strong>,<strong>total</strong>
Les deux tables suivent les commandes de différents canaux avec des noms de colonnes différents. Retournez une liste combinée de chaque commande avec les colonnes :
channel:'online'ou'retail'order_id:order_node online,ticket_node retailamount: le total de la commande (deamountoutotal)
Conservez chaque ligne (pas de déduplication). Triez par amount par ordre décroissant.
Aide-mémoire
UNION empile deux ensembles de résultats et supprime les doublons (plus lent). UNION ALL empile et conserve les doublons (plus rapide) :
SELECT name FROM authors
UNION ALL
SELECT name FROM editorsLes deux côtés doivent avoir le même nombre de colonnes, dans le même ordre, avec des types compatibles. Les noms de colonnes proviennent du premier SELECT.
Essayez vous-même
-- deux SELECT alignés sur les mêmes 3 colonnes, joints par UNION ALL
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.