In diesem Tutorial werden wir die WHERE IN-Klausel untersuchen, um herauszufinden, wie wir sie verwenden können, um die Ergebnisse aus einer bestimmten Tabelle oder Ergebnismenge herauszufiltern.
SQL WHERE IN-Klausel
Im Folgenden wird die grundlegende Syntax der WHERE IN-Klausel in SQL gezeigt:
SELECT Spalte1, Spalte2, ...
VON Tabellenname
WHERE Spaltenname IN (Wert1, Wert2, ...);
Wir beginnen mit einer einfachen „select“-Anweisung, gefolgt von den Spalten, die wir in die Ergebnismenge aufnehmen möchten.
Als nächstes geben wir die Tabelle an, aus der wir die Ergebnisse abrufen möchten. Zuletzt geben wir die Filterbedingung mit der WHERE-Klausel an, gefolgt vom Namen der Spalte, nach der wir filtern möchten. Nach der IN-Klausel geben wir eine Werteliste an, die wir zum Filtern verwenden möchten.
Beispiel 1: Ein einzelnes Ergebnis filtern
Um die Verwendung der WHERE IN-Klausel besser zu veranschaulichen, schauen wir uns ein Beispiel an. Betrachten Sie die Tabelle „Film“ aus der Sakila-Beispieldatenbank.
Angenommen, wir möchten alle Filme mit einer Altersfreigabe von PG oder PG-13 abrufen. Wir können die WHERE IN-Klausel wie folgt verwenden:
SELECT Titel, Erscheinungsjahr, BewertungVOM Film
WHERE Bewertung IN ('PG');
In diesem Fall stellen wir eine Liste eines einzelnen Werts bereit, den wir in der IN-Klausel abrufen möchten.
Beispiel 2: Mehrere Werte filtern
Wir können auch mehr als ein Element in der Werteliste angeben. Um beispielsweise die Filme mit einer Liste mit einer Bewertung von PG und PG-13 abzurufen, können wir die Abfrage wie folgt ausführen:
SELECT Titel, Erscheinungsjahr, BewertungVOM Film
WHERE-Bewertung IN ('PG', 'PG-13');
Die resultierende Ausgabe lautet wie folgt:
Beispiel 3: Filter mit Unterabfrage
Wir können WHERE IN auch in einer Unterabfrage verwenden, um die Ergebnisse aus einer bestimmten Ergebnismenge herauszufiltern.
Angenommen, wir möchten die Filme nach der Sprache filtern. Um beispielsweise die Filme in den Sprachen Englisch und Japanisch abzurufen, können wir WHERE IN in einer Unterabfrage wie folgt verwenden:
SELECT Titel, Erscheinungsjahr, BewertungVON film f
WHERE language_id IN (
SELECT language_id
VON Sprache
WHERE Name IN („Englisch“, „Japanisch“)
);
In diesem Beispiel erstellen wir eine Unterabfrage, die die „Sprache_ID“-Werte für die Sprachen Englisch und Japanisch aus der Tabelle „Sprachen“ abruft. In der Hauptabfrage wählen wir die Filme anhand der resultierenden „Sprache_ID“-Werte aus.
Abschluss
In diesem Beitrag haben wir gelernt, wie man mit der WHERE IN-Klausel in SQL arbeitet, um die Ergebnisse herauszufiltern, die einem einzelnen oder mehreren Werten in einer bestimmten Liste entsprechen.