Sa tutorial na ito, tutuklasin natin ang sugnay na WHERE IN para matuklasan kung paano natin ito magagamit para i-filter ang mga resulta mula sa isang ibinigay na talahanayan o set ng resulta.
SQL SAAN SA Sugnay
Ipinapakita ng sumusunod ang pangunahing syntax ng sugnay na WHERE IN sa SQL:
PUMILI ng column1, column2, ...
MULA sa table_name
WHERE column_name IN (value1, value2, ...);
Nagsisimula kami sa isang pangunahing pahayag na 'piliin' na sinusundan ng mga column na gusto naming isama sa set ng resulta.
Susunod, tinukoy namin ang talahanayan kung saan nais naming makuha ang mga resulta. Panghuli, tinutukoy namin ang kundisyon ng filter gamit ang sugnay na WHERE na sinusundan ng pangalan ng column kung saan gusto naming i-filter. Pagkatapos ng IN clause, tumukoy kami ng listahan ng value na gusto naming gamitin para sa pag-filter.
Halimbawa 1: I-filter ang Isang Resulta
Upang mas maipakita kung paano gamitin ang sugnay na WHERE IN, tingnan natin ang isang halimbawa. Isaalang-alang ang talahanayan ng 'pelikula' mula sa database ng sample ng Sakila.
Ipagpalagay na nais naming kunin ang lahat ng mga pelikulang may rating na PG o PG-13. Magagamit natin ang sugnay na WHERE IN gaya ng sumusunod:
PUMILI ng pamagat, release_year, ratingMULA sa pelikula
WHERE rating IN ('PG');
Sa kasong ito, nagbibigay kami ng listahan ng iisang value na gusto naming makuha sa sugnay na IN.
Halimbawa 2: I-filter ang Maramihang Halaga
Maaari rin kaming tumukoy ng higit sa isang item sa listahan ng mga halaga. Halimbawa, upang makuha ang mga pelikulang may listahan na may rating na PG at PG-13, maaari naming patakbuhin ang query tulad ng sumusunod:
PUMILI ng pamagat, release_year, ratingMULA sa pelikula
WHERE rating IN ('PG', 'PG-13');
Ang resultang output ay ang mga sumusunod:
Halimbawa 3: I-filter gamit ang Subquery
Magagamit din namin ang WHERE IN sa isang subquery na maaaring magpapahintulot sa amin na i-filter ang mga resulta mula sa isang naibigay na set ng resulta.
Ipagpalagay na nais naming i-filter ang mga pelikula batay sa wika. Halimbawa, para kunin ang mga pelikula sa English at Japanese na wika, maaari naming gamitin ang WHERE IN sa loob ng subquery gaya ng sumusunod:
PUMILI ng pamagat, release_year, ratingMULA sa pelikula f
WHERE language_id IN (
PUMILI ng wika_id
MULA sa wika
WHERE name IN ('English', 'Japanese')
);
Sa halimbawang ito, lumikha kami ng subquery na kumukuha ng mga halaga ng 'language_id' para sa mga wikang Ingles at Japanese mula sa talahanayan ng 'mga wika.' Sa pangunahing query, pipiliin namin ang mga pelikula batay sa mga nagresultang halaga ng 'language_id'.
Konklusyon
Sa post na ito, natutunan namin kung paano gamitin ang sugnay na WHERE IN sa SQL upang i-filter ang mga resulta na tumutugma sa isa o maramihang mga halaga sa isang ibinigay na listahan.