INTERSECT y EXCEPT
SQL · Unidad 10: WITH y conjuntos
- Plan completo
- SQL
- 10 ejercicios
«El faro» y «La casa azul» son los dos libros más prestados de la biblioteca, el 1 y el 3. La bibliotecaria quiere proponerle un tercero a quien ya leyó los dos. ¿Quién se ha llevado uno y también el otro?
INTERSECT se escribe donde iría UNION, y devuelve las filas que están en los dos resultados. «El faro» se lo llevaron Ana y Diego. «La casa azul», Luis y Ana. INTERSECT también quita los repetidos. UNION, INTERSECT y EXCEPT se llaman operadores de conjuntos.
SELECT socio
FROM prestamos
WHERE libro_id = 1
INTERSECT
SELECT socio
FROM prestamos
WHERE libro_id = 3;Devuelve
| socio |
|---|
| Ana |
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
Alguien intenta la misma pregunta con un
AND. El libro 1 se lo han llevado Ana y Diego, y el 3, Luis y Ana. ¿Qué devuelve esta consulta?2. Ordena las líneas
Elena Rivas escribió los libros 1 y 2, y Tomás Vera, el 3 y el 4. ¿Qué socios se han llevado algo de los dos autores? Ordena la consulta. Sobran dos líneas.
3. Predice la salida
Las mismas dos listas, cambiadas de sitio. El libro 3 se lo han llevado Luis y Ana. El 1, Ana y Diego. ¿Qué devuelve esta consulta?
4. Encuentra el bug
¿Qué libros no se han prestado nunca? Con
LEFT JOINsalían dos, el 5 y el 8, que la bibliotecaria manda al depósito. Esta versión resta, a los números de todos los libros, los de los libros prestados. Corre y no devuelve ninguno. ¿Qué línea tiene el problema?5. Opción múltiple
La lista de abajo, los
autor_iddelibros, tiene unNULL, el de «Cuentos breves». ¿Por qué aEXCEPTno le estorba, y aNOT INsí?6. Completa el código
Para ver el nombre, el
EXCEPTva en un paso y el paso se une conautores. Completa lo que va en elFROMy lo que va en elJOIN.7. Completa el código
¿Qué libros le quedan por leer a Ana? A todos los títulos de la biblioteca se les quitan los que ya se llevó. La segunda mitad necesita un
JOIN, porque enprestamossolo está el número del libro. Completa.8. Opción múltiple
Quieres a los lectores de «El faro» o de «La casa azul» que tengan ahora un libro fuera, y que la consulta diga lo mismo en cualquier motor. ¿Cómo la escribes?
9. Ordena las líneas
Llega a la biblioteca un libro nuevo de Tomás Vera, el autor de los libros 3 y 4. La bibliotecaria quiere prestárselo ya a alguien que haya leído a ese autor y que no tenga ningún libro fuera. Ordena la consulta. Sobran dos líneas.
10. Escribe el código
El libro nuevo de Tomás Vera también hay que presentárselo a quien todavía no conoce al autor. Escribe una consulta con una columna, el nombre de los socios que se han llevado algo de Elena Rivas, que escribió el 1 y el 2, y nada de Tomás Vera, que escribió el 3 y el 4. Por nombre, de la Z a la A.
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.