LEFT JOIN en SQL
La cláusula
LEFT JOIN
en SQL devuelve todas las filas de la tabla izquierda y, cuando existe coincidencia, los datos de la tabla derecha. Si no hay pareja, las columnas de la derecha aparecen como
NULL
.
LEFT JOIN en SQL es una pieza habitual del flujo SQL: consultar, filtrar, agrupar o modificar datos. Cada ejemplo usa tablas de demostración para que puedas experimentar sin riesgo.
Cómo practicar: ejecuta la consulta tal cual, revisa columnas y tipos, luego cambia un filtro o un alias y vuelve a ejecutar.
LEFT JOIN en SQL es una pieza habitual del flujo SQL: consultar, filtrar, agrupar o modificar datos. Cada ejemplo usa tablas de demostración para que puedas experimentar sin riesgo.
Cómo practicar: ejecuta la consulta tal cual, revisa columnas y tipos, luego cambia un filtro o un alias y vuelve a ejecutar.
A diferencia de
INNER JOIN
, no se pierden filas de la tabla principal. Es útil para ver «quién no tiene pedidos», «qué productos no se han vendido», etc.
En los ejemplos unimos
Clientes
(izquierda) con
Pedidos
(derecha) por
ID_Cliente
.
Sintaxis LEFT JOIN
La sintaxis indica el orden de argumentos y palabras clave. Copia la plantilla y sustituye nombres de columnas o literales entre comillas simples.
Plantilla
SELECT columna1, columna2, ...
FROM tabla_izquierda
LEFT JOIN tabla_derecha
ON tabla_izquierda.clave = tabla_derecha.clave;
LEFT JOIN
, la tabla escrita a la izquierda del
JOIN
siempre aparece completa.
Ejemplo LEFT JOIN: clientes y pedidos
Todos los clientes y su pedido si existe; si no hay pedido,
ID_Pedido
será
NULL
:
Clientes con o sin pedido
SELECT Clientes.Nombre_Cliente, Pedidos.ID_Pedido
FROM Clientes
LEFT JOIN Pedidos
ON Clientes.ID_Cliente = Pedidos.ID_Cliente;
Resultado:
diez filas (todos los clientes). Cinco con número de pedido y cinco con
NULL
en
ID_Pedido
.
| Nombre_Cliente | ID_Pedido |
|---|---|
| Ana García | 1 |
| María López | 2 |
| John Smith | 5 |
| Carlos Ruiz | NULL |
| Elena Torres | NULL |
NULL
).LEFT JOIN para filtrar sin coincidencia
Para quedarte solo con los que no tienen pedido, filtra
WHERE ID_Pedido IS NULL
después del
LEFT JOIN
:
Sin pedidos registrados
SELECT Clientes.Nombre_Cliente
FROM Clientes
LEFT JOIN Pedidos
ON Clientes.ID_Cliente = Pedidos.ID_Cliente
WHERE Pedidos.ID_Pedido IS NULL;
Resultado: cinco clientes sin ningún pedido en la base de datos de demostración (por ejemplo, Carlos Ruiz o Elena Torres).
Resumen
-
LEFT JOINconserva todas las filas de la tabla izquierda. -
Si no hay coincidencia a la derecha, las columnas de esa tabla valen
NULL. -
WHERE … IS NULLdespués del join permite listar «los que no tienen pareja». -
Contrasta con
INNER JOIN, que solo muestra coincidencias.
Cómo practicar en el editor
1. Pulsa Pruébalo tú mismo en un ejemplo.
2. Cambia un filtro, columna o literal.
3. Ejecuta y compara el resultado con la tabla de ejemplo.
Practica con ejercicios
Repasa la lección con consultas sobre Clientes (Elena Torres, Valencia…) y Productos (pera, mango, fresa) de nuestra base demo.
Ejercicio: Todos los clientes y sus pedidos
Practica LEFT JOIN para ver clientes con o sin pedidos. Usa la tabla Clientes de la demo (Elena Torres, Valencia…).
Consulta
SELECT Clientes.Nombre_Cliente, Pedidos.ID_Pedido
FROM Clientes
LEFT JOIN Pedidos ON Clientes.ID_Cliente = Pedidos.ID_Cliente;
Ejercicio: Clientes sin pedidos
Practica LEFT JOIN con WHERE … IS NULL. Usa la tabla Clientes de la demo (Elena Torres, Valencia…).
Consulta
SELECT Clientes.Nombre_Cliente
FROM Clientes
LEFT JOIN Pedidos ON Clientes.ID_Cliente = Pedidos.ID_Cliente
WHERE Pedidos.ID_Pedido IS NULL;
Cómo practicar
1. Pulsa Ejecutar aquí en el bloque.
2. Modifica la consulta (filtro, columnas…).
3. O abre el editor para más espacio.
Comprueba lo aprendido
Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.