Dalam tutorial ini, kami akan meneroka klausa WHERE IN untuk mengetahui cara kami boleh menggunakannya untuk menapis hasil daripada jadual atau set hasil yang diberikan.
SQL DI MANA DALAM Klausa
Berikut menunjukkan sintaks asas klausa WHERE IN dalam SQL:
PILIH lajur1, lajur2, ...
DARI table_name
WHERE column_name IN (nilai1, nilai2, ...);
Kami mulakan dengan pernyataan 'pilih' asas diikuti dengan lajur yang ingin kami sertakan dalam set hasil.
Seterusnya, kami menentukan jadual dari mana kami ingin mendapatkan semula hasilnya. Akhir sekali, kami menentukan keadaan penapis menggunakan klausa WHERE diikuti dengan nama lajur yang kami ingin tapis. Selepas klausa IN, kami menentukan senarai nilai yang kami mahu gunakan untuk penapisan.
Contoh 1: Tapis Keputusan Tunggal
Untuk menunjukkan cara menggunakan klausa WHERE IN dengan lebih baik, mari kita lihat contoh. Pertimbangkan jadual 'filem' daripada pangkalan data sampel Sakila.
Katakan kami ingin mendapatkan semula semua filem dengan penarafan PG atau PG-13. Kita boleh menggunakan klausa WHERE IN seperti berikut:
SELECT tajuk, release_year, ratingDARI filem
WHERE rating IN ('PG');
Dalam kes ini, kami menyediakan senarai nilai tunggal yang kami ingin dapatkan semula dalam klausa IN.
Contoh 2: Tapis Berbilang Nilai
Kami juga boleh menentukan lebih daripada satu item dalam senarai nilai. Contohnya, untuk mendapatkan semula filem dengan senarai dengan penarafan PG dan PG-13, kami boleh menjalankan pertanyaan seperti berikut:
SELECT tajuk, release_year, ratingDARI filem
WHERE rating IN ('PG', 'PG-13');
Output yang terhasil adalah seperti berikut:
Contoh 3: Tapis dengan Subquery
Kami juga boleh menggunakan WHERE IN dalam subkueri yang membolehkan kami menapis hasil daripada set hasil yang diberikan.
Katakan kita ingin menapis filem berdasarkan bahasa. Contohnya, untuk mendapatkan semula filem dalam bahasa Inggeris dan Jepun, kita boleh menggunakan WHERE IN dalam subkueri seperti berikut:
SELECT tajuk, release_year, ratingDARI filem f
WHERE language_id IN (
PILIH language_id
DARI bahasa
WHERE nama IN ('Inggeris', 'Jepun')
);
Dalam contoh ini, kami mencipta subkueri yang mendapatkan semula nilai 'language_id' untuk bahasa Inggeris dan Jepun daripada jadual 'language'. Dalam pertanyaan utama, kami memilih filem berdasarkan nilai 'id_bahasa' yang terhasil.
Kesimpulan
Dalam siaran ini, kami belajar cara bekerja dengan klausa WHERE IN dalam SQL untuk menapis hasil yang sepadan dengan satu atau berbilang nilai dalam senarai tertentu.