INTERSECT
Teil des Abschnitts Über die Grundlagen hinaus der SQL-Journey von Coddy — Lektion 17 von 27.
INTERSECT gibt nur Zeilen zurück, die in beiden Ergebnismengen vorkommen. Wie UNION entfernt es Duplikate und erfordert übereinstimmende Spalten auf jeder Seite.
SELECT email FROM newsletter_subs
INTERSECT
SELECT email FROM premium_usersDas sind alle E-Mails, die sowohl den Newsletter abonniert haben als auch Premium-Nutzer sind, ohne einen Join schreiben zu müssen.
Warum die Mühe, wenn ein JOIN das auch tun kann? INTERSECT ist kürzer, wenn beide Seiten einfache SELECTs sind und man auf die gesamte Zeile abgleicht, nicht nur auf eine ID.
Aufgabe
EinfachVerfügbare Tabellen und Spalten:
<strong>newsletter</strong>:<strong>email</strong>,<strong>active</strong><strong>premium</strong>:<strong>email</strong>,<strong>plan</strong>
Geben Sie die E-Mails zurück, die sowohl als aktive Newsletter-Abonnenten (active = 1) als auch als Premium-Nutzer im 'pro'-Tarif erscheinen. Sortieren Sie alphabetisch.
Spickzettel
INTERSECT gibt nur Zeilen zurück, die in beiden Ergebnismengen vorkommen (Duplikate werden entfernt, Spalten müssen übereinstimmen):
SELECT email FROM newsletter_subs
INTERSECT
SELECT email FROM premium_usersVerwenden Sie INTERSECT anstelle eines JOIN, wenn Sie Übereinstimmungen über ganze Zeilen hinweg in zwei einfachen SELECT-Anweisungen suchen.
Probier es selbst
-- jede Seite vor INTERSECT filtern
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.