W tym samouczku przyjrzymy się klauzuli WHERE IN, aby dowiedzieć się, jak możemy jej użyć do odfiltrowania wyników z danej tabeli lub zestawu wyników.
Klauzula SQL WHERE IN
Poniżej przedstawiono podstawową składnię klauzuli WHERE IN w języku SQL:
WYBIERZ kolumnę 1, kolumnę 2, ...
Z nazwa_tabeli
GDZIE nazwa_kolumny IN (wartość1, wartość2, ...);
Zaczynamy od podstawowej instrukcji „select”, po której następują kolumny, które chcemy uwzględnić w zestawie wyników.
Następnie określamy tabelę, z której chcemy pobrać wyniki. Na koniec określamy warunek filtra za pomocą klauzuli WHERE, po której następuje nazwa kolumny, według której chcemy filtrować. Po klauzuli IN podajemy listę wartości, których chcemy użyć do filtrowania.
Przykład 1: Filtruj pojedynczy wynik
Aby lepiej zademonstrować sposób użycia klauzuli WHERE IN, spójrzmy na przykład. Rozważmy tabelę „film” z przykładowej bazy danych Sakila.
Załóżmy, że chcemy pobrać wszystkie filmy z oceną PG lub PG-13. Klauzuli WHERE IN możemy użyć w następujący sposób:
WYBIERZ tytuł, rok_wydania, ocenęZ filmu
GDZIE ocena IN („PG”);
W tym przypadku podajemy listę pojedynczych wartości, które chcemy pobrać w klauzuli IN.
Przykład 2: Filtruj wiele wartości
Możemy również określić więcej niż jedną pozycję na liście wartości. Przykładowo, aby pobrać filmy z listą z oceną PG i PG-13, możemy uruchomić zapytanie w następujący sposób:
WYBIERZ tytuł, rok_wydania, ocenęZ filmu
GDZIE ocena IN („PG”, „PG-13”);
Wynikowy wynik jest następujący:
Przykład 3: Filtrowanie za pomocą podzapytania
Możemy również użyć WHERE IN w podzapytaniu, co pozwala nam odfiltrować wyniki z danego zestawu wyników.
Załóżmy, że chcemy filtrować filmy na podstawie języka. Na przykład, aby pobrać filmy w języku angielskim i japońskim, możemy użyć WHERE IN w podzapytaniu w następujący sposób:
WYBIERZ tytuł, rok_wydania, ocenęZ filmu f
GDZIE id_języka IN (
WYBIERZ identyfikator języka
Z języka
WHERE nazwa IN („angielski”, „japoński”)
);
W tym przykładzie tworzymy podzapytanie, które pobiera wartości „language_id” dla języków angielskiego i japońskiego z tabeli „languages”. W głównym zapytaniu wybieramy filmy na podstawie otrzymanych wartości „language_id”.
Wniosek
W tym poście dowiedzieliśmy się, jak pracować z klauzulą WHERE IN w SQL, aby odfiltrować wyniki pasujące do jednej lub wielu wartości na danej liście.