IN con una subconsulta
SQL · Unidad 9: Subconsultas
- Plan completo
- SQL
- 10 ejercicios
¿Qué pedidos van a Lima? Antes de aprender a unir tablas, esa pregunta eran dos consultas. Una decía quién vive en Lima, y la otra llevaba sus números escritos a mano en un IN (1, 5, 8).
La lista de un IN puede salir de otra consulta. Con = o con >, la subconsulta tenía que dar un solo valor. Con IN devuelve una columna con las filas que sean, y pasan los pedidos cuyo cliente_id está entre ellas. Salen cinco, de Ana y de Valeria. Bruno, el cliente 8, está en la lista y no ha pedido nada.
SELECT id, cliente_id, fecha
FROM pedidos
WHERE cliente_id IN (
SELECT id
FROM clientes
WHERE ciudad = 'Lima'
);Devuelve
| id | cliente_id | fecha |
|---|---|---|
| 1 | 1 | 2026-01-03 |
| 2 | 1 | 2026-01-04 |
| 5 | 5 | 2026-01-10 |
| 7 | 1 | 2026-01-12 |
| 8 | 5 | 2026-01-12 |
El resto de la explicación está en la lección, que es del plan completo.
Ejercicios de esta lección
Se hacen en la app, que los corrige al momento y explica por qué.
1. Predice la salida
Las cajas grandes son los pedidos de 3 unidades o más. Hay tres, el pedido 3, del cliente 2, el pedido 4, del cliente 4, y el pedido 8, del cliente 5. En
clientes, del 2 al 5 son Luis, Sofía, Mateo y Valeria, y el 8 es Bruno. ¿Qué devuelve esta consulta?2. Completa el código
¿Qué productos ha pedido Ana, la clienta 1? Sus pedidos son el 1, el 2 y el 7. Completa la columna que arma la lista.
3. Predice la salida
¿Quién compró en los primeros días, antes del 5 de enero? En esos días hubo tres pedidos, dos de Ana y uno de Luis. ¿Qué devuelve esta consulta?
4. Encuentra el bug
¿Qué productos ha pedido Luis, el cliente 2? Ha hecho tres pedidos, de Ratón, de Monitor y de Tableta. La consulta corre y devuelve solo el Ratón. ¿Qué línea tiene el problema?
5. Ordena las líneas
NOT INtambién acepta una subconsulta, y deja pasar a quien no está en la lista. ¿A qué clientes no les ha llegado nunca una caja grande? Ordena la consulta que da sus nombres en orden alfabético. Sobran dos líneas.6. Opción múltiple
Para SQL,
id NOT IN (1, 2, NULL)esid <> 1 AND id <> 2 AND id <> NULL. Ya sabes que cualquier comparación conNULLdaNULL. Y a unANDno le basta con eso, porque necesita que todos sus trozos sean ciertos. Nora Paz tiene elid5. ¿Qué pasa con su fila?7. Completa el código
La biblioteca prepara una vitrina con los autores de los que no tiene nada anterior al año 2000. Tres de sus libros son de antes, «El faro», «Hojas sueltas» y «Cuentos breves», que es de 1975 y no tiene autor. Completa para que ese hueco no entre en la lista.
8. Encuentra el caso que falla
Para un estante de lecturas cortas, la biblioteca busca a los autores de los que no tiene ningún libro de más de 300 páginas. Son Marta Solís y Nora Paz. A esta consulta nadie le quitó los
NULLde la lista, y aun así acierta. ¿Con cuál de estos cambios se queda sin devolver a nadie?9. Ordena las líneas
La biblioteca dedica este mes a Chile. ¿Qué libros tiene de autores chilenos? Ordena la consulta que da el título y las páginas de cada uno, del más largo al más corto. Sobran dos líneas.
10. Escribe el código
Durante el mes de Chile, los libros de autores chilenos van a una mesa aparte. ¿Cuáles se quedan en su estante? Escribe una consulta con una columna, el título de los libros que no son de un autor chileno, en orden alfabético. «Cuentos breves», que no tiene autor, también se queda.
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.