Saltar al contenido

UNION

SQL · Unidad 10: WITH y conjuntos

La biblioteca del barrio cumple años y da una fiesta. Invita a sus autores y a sus socios. ¿A quién le manda invitación? Los nombres están en dos tablas. Los autores, en autores. Los socios, en prestamos, donde cada fila es un libro que salió, con el socio que se lo llevó, el día en que salió y el día en que volvió.

UNION pone el resultado de una consulta debajo del de otra. No empareja nada, como haría un JOIN. Apila. La columna se titula como en el primer SELECT. Ana se ha llevado tres libros y sale una vez, porque UNION quita las filas repetidas.

SELECT libro_id, socio, prestado,
  devuelto
FROM prestamos;
SELECT nombre
FROM autores
UNION
SELECT socio
FROM prestamos;

Devuelve

libro_idsocioprestadodevuelto
1Ana2026-01-022026-01-09
3Luis2026-01-032026-01-05
1Diego2026-01-10NULL
4Ana2026-01-102026-01-14
6Camila2026-01-12NULL
3Ana2026-01-13NULL
7Luis2026-01-082026-01-15
2Bruno2025-12-202026-01-04

Devuelve

nombre
Ana
Bruno
Camila
Diego
Elena Rivas
Luis
Marta Solís
Nora Paz
Pedro Luna
Tomás Vera

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

    Tienen un libro sin devolver Diego, Camila y Ana. «El faro», que es el libro 1, se lo han llevado Ana y Diego. ¿Qué devuelve esta consulta?

  2. 2. Ordena las líneas

    La biblioteca dedica este mes a Chile y organiza una lectura. Invita a sus autores chilenos y, para llenar la sala, a los socios que tienen ahora un libro en casa. Ordena la consulta que da todos esos nombres en una columna titulada nombre, de la Z a la A. Sobran dos líneas.

  3. 3. Encuentra el bug

    La lista de invitados lleva dos columnas, el nombre y el país. De los socios no se sabe el país, y en su fila tiene que decir sin dato. Aquí SQL contesta que los SELECT de los dos lados del UNION no tienen el mismo número de columnas. ¿Qué línea tiene el problema?

  4. 4. Ordena las líneas

    La editorial de «El faro», el libro 1, quiere una mesa redonda con los autores de fuera de Chile y con los socios que se han llevado el libro. Ordena la consulta que da el nombre y el papel de cada uno, primero los autores y después los socios, y dentro de cada papel de la Z a la A. Sobran dos líneas.

  5. 5. Predice la salida

    «El faro» es el libro 1, y se lo han llevado Ana y Diego. «La casa azul» es el 3, y se lo han llevado Luis y Ana. ¿Qué devuelve esta consulta?

  6. 6. Encuentra el bug

    El registro de «El faro», el libro 1, con cada día en que salió o volvió y el socio que pasó por el mostrador. La consulta corre, y en la última fila el día dice Ana. ¿Qué línea tiene el problema?

  7. 7. Completa el código

    ¿Quién pasa más por el mostrador? Cada préstamo es una visita, y cada devolución, otra. Las dos listas se apilan en un paso, y la consulta de abajo cuenta las filas de cada socio. Completa lo que une las dos listas.

  8. 8. Opción múltiple

    ¿Qué días ha tenido movimiento el mostrador? Tres préstamos siguen sin devolver, y su devuelto es NULL. UNION quita repetidos igual que DISTINCT. ¿Cuántas filas vacías trae el resultado?

  9. 9. Encuentra el caso que falla

    El registro del mostrador lleva una fila por visita, con el día y el socio. Hoy tiene 13, ocho salidas y cinco devoluciones. Alguien lo escribió con UNION a secas. ¿Con cuál de estos cambios pierde una visita?

  10. 10. Escribe el código

    El registro de «La casa azul», el libro 3. Escribe una consulta con dos columnas en este orden, el día y lo que pasó ese día, que es el texto sale cuando el libro se prestó y vuelve cuando se devolvió. Una fila por cada salida y una por cada devolución que ya ocurrió, del día más antiguo al más reciente.

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 →