Ebben az oktatóanyagban megvizsgáljuk a WHERE IN záradékot, hogy megtudjuk, hogyan használhatjuk ki az eredményeket egy adott táblázatból vagy eredményhalmazból.
SQL WHERE IN záradék
Az alábbiakban látható a WHERE IN záradék alapvető szintaxisa SQL-ben:
SELECT oszlop1, oszlop2, ...
FROM tábla_neve
WHERE oszlopnév IN (érték1, érték2, ...);
Kezdjük egy alapvető „select” utasítással, majd azokkal az oszlopokkal, amelyeket be kívánunk venni az eredménykészletbe.
Ezután adjuk meg azt a táblázatot, amelyből az eredményeket szeretnénk lekérni. Végül megadjuk a szűrési feltételt a WHERE záradékkal, majd annak az oszlopnak a nevével, amelyre szűrni szeretnénk. Az IN záradék után megadjuk a szűréshez használni kívánt értékek listáját.
1. példa: Egyetlen eredmény szűrése
A WHERE IN záradék használatának jobb bemutatása érdekében nézzünk meg egy példát. Tekintsük a Sakila mintaadatbázis „film” táblázatát.
Tegyük fel, hogy az összes PG vagy PG-13 besorolású filmet le akarjuk kérni. A WHERE IN záradékot a következőképpen használhatjuk:
SELECT cím, kiadás_év, értékelésA filmből
WHERE minősítés IN ('PG');
Ebben az esetben megadunk egy listát egyetlen értékről, amelyet az IN záradékban szeretnénk lekérni.
2. példa: Több érték szűrése
Az értéklistában egynél több elemet is megadhatunk. Például a PG és PG-13 besorolású listával rendelkező filmek lekéréséhez a következőképpen futtathatjuk a lekérdezést:
SELECT cím, kiadás_év, értékelésA filmből
WHERE besorolás IN ('PG', 'PG-13');
A kapott kimenet a következő:
3. példa: Szűrés segédlekérdezéssel
Allekérdezésben is használhatjuk a WHERE IN-t, amely lehetővé teszi számunkra, hogy kiszűrjük az eredményeket egy adott eredményhalmazból.
Tegyük fel, hogy a nyelv alapján szeretnénk szűrni a filmeket. Például a filmek angol és japán nyelvű lekéréséhez használhatjuk a WHERE IN-t egy segédlekérdezésben a következőképpen:
SELECT cím, kiadás_év, értékelésfilmből f
WHERE nyelv_azonosító IN (
SELECT language_id
nyelvből
WHERE név IN ('angol', 'japán')
);
Ebben a példában létrehozunk egy segédlekérdezést, amely lekéri a „language_id” értékeket angol és japán nyelvre a „languages” táblából. A fő lekérdezésben a kapott „language_id” értékek alapján választjuk ki a filmeket.
Következtetés
Ebben a bejegyzésben megtanultuk, hogyan kell dolgozni a WHERE IN záradékkal az SQL-ben, hogy kiszűrjük azokat az eredményeket, amelyek egy vagy több értéknek felelnek meg egy adott listában.