LEFT JOIN
SQL · Unidad 8: Más uniones
- Plan completo
- SQL
- 11 ejercicios
La unidad pasada dejó una lista a medias. El dueño sacó de la lista de pedidos con nombre a quién saludar por año nuevo, y salieron seis nombres de ocho. Para saludar bastaba con clientes. Ahora quiere más, escribirle a cada uno con sus pedidos delante, y también a quien no tiene ninguno. Camila y Bruno no han pedido nada, y el JOIN los dejaba fuera.
LEFT JOIN conserva todas las filas de la tabla del FROM, tengan pareja o no. Estos son los dos clientes de Bogotá. Luis sale tres veces, como antes. Camila sale una, con la fecha vacía, porque no hay ningún pedido que poner a su lado.
SELECT c.nombre, p.fecha
FROM clientes c
LEFT JOIN pedidos p
ON p.cliente_id = c.id
WHERE c.ciudad = 'Bogotá';Devuelve
| nombre | fecha |
|---|---|
| Luis | 2026-01-04 |
| Luis | 2026-01-11 |
| Luis | 2026-01-20 |
| Camila | NULL |
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
Los clientes 6, 7 y 8 son Diego, Camila y Bruno. Diego ha hecho los pedidos 9 y 11. Los otros dos, ninguno. ¿Qué devuelve esta consulta?
2. Ordena las líneas
¿Qué se ha pedido de cada producto de la sección Audio? Tienen que salir todos, también el que nadie ha pedido. Ordena la consulta que muestra el producto y la cantidad de cada pedido, con el producto más caro primero y, dentro de cada uno, por número de pedido. Sobran dos líneas.
3. Opción múltiple
La tienda tiene 8 clientes y 12 pedidos, y dos clientes no han pedido nada. ¿Cuántas filas devuelve esta consulta?
4. Predice la salida
Sofía es la clienta 3. No tiene ciudad anotada, y ha hecho un pedido, el 15 de enero. Camila es la 7, vive en Bogotá y no ha pedido nada. ¿Qué devuelve esta consulta?
5. Completa el código
La lista de los clientes 3, 7 y 8 con la fecha de su pedido, que diga
sin pedidosdonde no haya ninguno. Completa con la columna que llega vacía cuando alguien no ha pedido.6. Completa el código
Antes de reponer, el dueño mira qué días se pidió cada producto agotado. Hay dos con
stock0, el Cable y el Parlante, y tienen que salir los dos. Completa cada línea con su tabla.7. Opción múltiple
En una consulta ajena lees
FROM pedidos p RIGHT JOIN clientes c, con elONde siempre. ¿Con cuál de estas formas salen las mismas filas?8. Encuentra el bug
La tienda abre su local en Lima e invita a la fiesta a sus tres clientes de allí, hayan comprado o no. La lista lleva a cada invitado con el número de sus pedidos. Corre sin error, y Bruno, que vive en Lima, no está. ¿Qué línea tiene el problema?
9. Ordena las líneas
La tienda prepara una oferta para sus clientes de 30 a 49 años, hayan comprado o no. Ordena la consulta que muestra el nombre, la edad y la fecha de cada pedido, del cliente más joven al mayor y, dentro de cada uno, por fecha. Sobran dos líneas.
10. Encuentra el caso que falla
El dueño viaja a Quito y lleva la lista de todos sus clientes de allí, con el número de sus pedidos si los tienen. Hoy en Quito solo vive Mateo, que tiene un pedido. Alguien escribió la consulta con
pedidosen elFROM. ¿Con cuál de estos cambios deja a alguien de Quito fuera de la lista?11. Escribe el código
La lista que el dueño quiere ahora, con los ocho clientes y lo que ha pedido cada uno. Escribe una consulta con tres columnas en este orden, el nombre del cliente, su ciudad, que diga
Sin ciudadsi no está anotada, y la fecha de cada pedido suyo, que digasin pedidossi no tiene ninguno. Una fila por cada pedido, y una para quien no tiene ninguno, por nombre y, dentro de cada cliente, del pedido más viejo al más nuevo.
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.