Saltar al contenido

INTERSECT y EXCEPT

SQL · Unidad 10: WITH y conjuntos

«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. 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. 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. 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. 4. Encuentra el bug

    ¿Qué libros no se han prestado nunca? Con LEFT JOIN salí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. 5. Opción múltiple

    La lista de abajo, los autor_id de libros, tiene un NULL, el de «Cuentos breves». ¿Por qué a EXCEPT no le estorba, y a NOT IN sí?

  6. 6. Completa el código

    Para ver el nombre, el EXCEPT va en un paso y el paso se une con autores. Completa lo que va en el FROM y lo que va en el JOIN.

  7. 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 en prestamos solo está el número del libro. Completa.

  8. 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. 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. 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.

Hacer esta lección

Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.

Ver todas las lecciones →