In questo tutorial esploreremo la clausola WHERE IN per scoprire come possiamo utilizzarla per filtrare i risultati da una determinata tabella o set di risultati.
SQL WHERE IN Clausola
Di seguito viene mostrata la sintassi di base della clausola WHERE IN in SQL:
SELEZIONA colonna1, colonna2, ...
DA nome_tabella
WHERE nome_colonna IN (valore1, valore2, ...);
Iniziamo con un'istruzione di base 'select' seguita dalle colonne che desideriamo includere nel set di risultati.
Successivamente, specifichiamo la tabella da cui desideriamo recuperare i risultati. Infine specifichiamo la condizione del filtro utilizzando la clausola WHERE seguita dal nome della colonna su cui desideriamo filtrare. Dopo la clausola IN, specifichiamo un elenco di valori che vogliamo utilizzare per il filtraggio.
Esempio 1: filtrare un singolo risultato
Per dimostrare meglio come utilizzare la clausola WHERE IN, guardiamo un esempio. Consideriamo la tabella “film” dal database di esempio Sakila.
Supponiamo di voler recuperare tutti i film con classificazione PG o PG-13. Possiamo usare la clausola WHERE IN come segue:
SELEZIONA titolo, anno_uscita, valutazioneDAL cinema
DOVE classificazione IN ('PG');
In questo caso, forniamo un elenco di un singolo valore che desideriamo recuperare nella clausola IN.
Esempio 2: filtrare più valori
Possiamo anche specificare più di un elemento nell'elenco dei valori. Ad esempio, per recuperare i film con un elenco con classificazione PG e PG-13, possiamo eseguire la query come segue:
SELEZIONA titolo, anno_uscita, valutazioneDAL cinema
DOVE valutazione IN ('PG', 'PG-13');
L'output risultante è il seguente:
Esempio 3: filtro con sottoquery
Possiamo anche utilizzare WHERE IN in una sottoquery che può consentirci di filtrare i risultati da un determinato set di risultati.
Supponiamo di voler filtrare i film in base alla lingua. Ad esempio, per recuperare i film in lingua inglese e giapponese, possiamo utilizzare WHERE IN all'interno di una sottoquery come segue:
SELEZIONA titolo, anno_uscita, valutazioneDAL film f
DOVE id_lingua IN (
SELEZIONA id_lingua
DALLA lingua
DOVE nome IN ('inglese', 'giapponese')
);
In questo esempio creiamo una sottoquery che recupera i valori “lingual_id” per le lingue inglese e giapponese dalla tabella “linguals”. Nella query principale selezioniamo i film in base ai valori “lingual_id” risultanti.
Conclusione
In questo post abbiamo imparato come lavorare con la clausola WHERE IN in SQL per filtrare i risultati che corrispondono a uno o più valori in un determinato elenco.