In deze zelfstudie verkennen we de WHERE IN-clausule om te ontdekken hoe we deze kunnen gebruiken om de resultaten uit een bepaalde tabel of resultatenset te filteren.
SQL WHERE IN-clausule
Hieronder ziet u de basissyntaxis van de WHERE IN-clausule in SQL:
SELECTEER kolom1, kolom2, ...
FROM tabelnaam
WHERE kolomnaam IN (waarde1, waarde2, ...);
We beginnen met een eenvoudige ‘select’-instructie, gevolgd door de kolommen die we in de resultatenset willen opnemen.
Vervolgens specificeren we de tabel waaruit we de resultaten willen ophalen. Ten slotte specificeren we de filtervoorwaarde met behulp van de WHERE-clausule, gevolgd door de naam van de kolom waarop we willen filteren. Na de IN-clausule specificeren we een lijst met waarden die we willen gebruiken voor het filteren.
Voorbeeld 1: Filter één resultaat
Laten we een voorbeeld bekijken om beter te demonstreren hoe u de WHERE IN-clausule gebruikt. Beschouw de “film”-tabel uit de voorbeelddatabase van Sakila.
Stel dat we alle films met een beoordeling van PG of PG-13 willen ophalen. We kunnen de WHERE IN-clausule als volgt gebruiken:
SELECTEER titel, releasejaar, beoordelingVAN film
WHERE-beoordeling IN ('PG');
In dit geval bieden we een lijst met een enkele waarde die we willen ophalen in de IN-clausule.
Voorbeeld 2: meerdere waarden filteren
We kunnen ook meer dan één item in de lijst met waarden opgeven. Om bijvoorbeeld de films op te halen met een lijst met een beoordeling van PG en PG-13, kunnen we de zoekopdracht als volgt uitvoeren:
SELECTEER titel, releasejaar, beoordelingVAN film
WHERE-beoordeling IN ('PG', 'PG-13');
De resulterende uitvoer is als volgt:
Voorbeeld 3: Filter met subquery
We kunnen WHERE IN ook in een subquery gebruiken, waardoor we de resultaten uit een bepaalde resultatenset kunnen filteren.
Stel dat we de films willen filteren op basis van de taal. Om bijvoorbeeld de films in de Engelse en Japanse taal op te halen, kunnen we de WHERE IN binnen een subquery als volgt gebruiken:
SELECTEER titel, releasejaar, beoordelingUIT film f
WHERE taal_id IN (
SELECTEER taal_id
VAN taal
WHERE naam IN ('Engels', 'Japans')
);
In dit voorbeeld maken we een subquery die de waarden “taal_id” voor de Engelse en Japanse talen ophaalt uit de tabel “talen”. In de hoofdquery selecteren we de films op basis van de resulterende “taal_id”-waarden.
Conclusie
In dit bericht hebben we geleerd hoe we met de WHERE IN-clausule in SQL kunnen werken om de resultaten eruit te filteren die overeenkomen met een enkele of meerdere waarden in een bepaalde lijst.