En este tutorial, exploraremos la cláusula WHERE IN para descubrir cómo podemos usarla para filtrar los resultados de una tabla o conjunto de resultados determinado.
Cláusula SQL WHERE IN
A continuación se muestra la sintaxis básica de la cláusula WHERE IN en SQL:
SELECCIONE columna1, columna2, ...
DESDE nombre_tabla
DONDE nombre_columna EN (valor1, valor2, ...);
Comenzamos con una declaración básica de 'selección' seguida de las columnas que deseamos incluir en el conjunto de resultados.
A continuación, especificamos la tabla de la que deseamos recuperar los resultados. Por último, especificamos la condición del filtro usando la cláusula WHERE seguida del nombre de la columna por la que deseamos filtrar. Después de la cláusula IN, especificamos una lista de valores que queremos usar para filtrar.
Ejemplo 1: filtrar un único resultado
Para demostrar mejor cómo utilizar la cláusula WHERE IN, veamos un ejemplo. Considere la tabla de “películas” de la base de datos de muestra de Sakila.
Supongamos que deseamos recuperar todas las películas con clasificación PG o PG-13. Podemos utilizar la cláusula WHERE IN de la siguiente manera:
SELECCIONE título, año_lanzamiento, calificaciónDE la película
DONDE calificación EN ('PG');
En este caso, proporcionamos una lista de un valor único que deseamos recuperar en la cláusula IN.
Ejemplo 2: filtrar varios valores
También podemos especificar más de un elemento en la lista de valores. Por ejemplo, para recuperar las películas con una lista con clasificación PG y PG-13, podemos ejecutar la consulta de la siguiente manera:
SELECCIONE título, año_lanzamiento, calificaciónDE la película
DONDE calificación EN ('PG', 'PG-13');
El resultado resultante es el siguiente:
Ejemplo 3: Filtrar con subconsulta
También podemos usar WHERE IN en una subconsulta que nos permite filtrar los resultados de un conjunto de resultados determinado.
Supongamos que deseamos filtrar las películas según el idioma. Por ejemplo, para recuperar las películas en inglés y japonés, podemos usar WHERE IN dentro de una subconsulta de la siguiente manera:
SELECCIONE título, año_lanzamiento, calificaciónDE la película f
DONDE language_id EN (
SELECCIONE ID_idioma
DEL idioma
DONDE nombre EN ('inglés', 'japonés')
);
En este ejemplo, creamos una subconsulta que recupera los valores de 'language_id' para los idiomas inglés y japonés de la tabla 'idiomas'. En la consulta principal, seleccionamos las películas en función de los valores resultantes de 'language_id'.
Conclusión
En esta publicación, aprendimos cómo trabajar con la cláusula WHERE IN en SQL para filtrar los resultados que coinciden con uno o varios valores en una lista determinada.