INTERSECT
Fait partie de la section Au-delà des bases du Journey SQL de Coddy — leçon 17 sur 27.
INTERSECT retourne uniquement les lignes qui apparaissent dans les deux ensembles de résultats. Comme UNION, il supprime les doublons et nécessite des colonnes correspondantes de chaque côté.
SELECT email FROM newsletter_subs
INTERSECT
SELECT email FROM premium_usersCela correspond à chaque e-mail qui est à la fois abonné à la newsletter et un utilisateur premium, sans avoir à écrire de jointure.
Pourquoi s'embêter, quand un JOIN peut aussi faire cela ? INTERSECT est plus court quand les deux côtés sont des SELECT simples et que vous effectuez la correspondance sur la ligne entière, pas seulement sur un id.
Défi
FacileTables et colonnes disponibles :
<strong>newsletter</strong>:<strong>email</strong>,<strong>active</strong><strong>premium</strong>:<strong>email</strong>,<strong>plan</strong>
Retournez les e-mails qui apparaissent comme des abonnés actifs à la newsletter (active = 1) et comme des utilisateurs premium avec le plan 'pro'. Ordonnez par ordre alphabétique.
Aide-mémoire
INTERSECT retourne uniquement les lignes qui apparaissent dans les deux ensembles de résultats (doublons supprimés, les colonnes doivent correspondre) :
SELECT email FROM newsletter_subs
INTERSECT
SELECT email FROM premium_usersUtilisez INTERSECT au lieu d'un JOIN lors de la mise en correspondance de lignes entières sur deux simples SELECT.
Essayez vous-même
-- filtrer chaque côté avant INTERSECT
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.