Filtrar clientes con WHERE
Objetivos
Vas a reducir el resultado de una consulta usando valores que existen en las columnas de Sakila.
Concepto
WHERE conserva solo las filas que cumplen una condición. AND pide que se cumplan las dos condiciones al mismo tiempo.
Primero escribe la pregunta en español: “quiero clientes activos cuya tienda de referencia sea la 1”. Después traduce cada condición a una columna real. En customer, store_id es la tienda principal asignada al cliente; no identifica necesariamente dónde ocurrió cada alquiler o pago.
Ejemplo
SELECT customer_id, first_name, last_name, store_id, active
FROM customer
WHERE active = 1
AND store_id = 1
ORDER BY customer_id
LIMIT 10;active y store_id son columnas de customer. En este esquema active usa 1 para activo y 0 para inactivo.
Nota
Error común: usar OR cuando quieres que ambas condiciones sean obligatorias. Con OR, bastaría con cumplir una sola.
Práctica guiada
Predice si cada fila puede aparecer antes de ejecutar la consulta:
| active | store_id | ¿Pasa el filtro? |
|---|---|---|
| 1 | 1 | Sí |
| 1 | 2 | No |
| 0 | 1 | No |
Reto
Busca clientes inactivos de la tienda 2. Devuelve su identificador, nombre y estado, ordena por identificador y limita el resultado a 10 filas.
Quiz
¿Qué debe ocurrir para que una fila pase por active = 1 AND store_id = 1?
- A. Debe cumplir las dos condiciones.
- B. Basta con que
activesea 1. - C. Basta con que
store_idsea 1.
Respuesta: A. AND conserva filas donde ambas expresiones son verdaderas.
Comprobación
Explica por qué WHERE va después de FROM en esta consulta. La secuencia del track mantiene este orden para que puedas reutilizar SELECT y FROM.