¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)
Ejemplo práctico de LEFT JOIN en SQL: Mostrar todos los clientes aunque no tengan pedidos
Anuncios
Publicidad

Ejemplo práctico de LEFT JOIN en SQL: Mostrar todos los clientes aunque no tengan pedidos

En este ejercicio práctico aprenderás a usar la cláusula LEFT JOIN en SQL para combinar dos tablas. El objetivo es mostrar todos los clientes, aunque no tengan pedidos registrados.

Vamos a trabajar con una base de datos llamada tiendaonline, que contiene dos tablas principales:

  • clientes: almacena información sobre los clientes.
  • pedidos: almacena los pedidos realizados por los clientes.

Paso 1: Usar la base de datos

USE tiendaonline;

Paso 2: Ver el contenido de las tablas

Antes de realizar la consulta, es recomendable ver los datos disponibles:

SELECT * FROM tiendaonline.clientes;
SELECT * FROM tiendaonline.pedidos;

Paso 3: Usar LEFT JOIN para mostrar todos los clientes con sus pedidos (si los tienen)

La siguiente consulta une las tablas clientes y pedidos, mostrando el nombre del cliente y la fecha de su pedido. Si el cliente no ha hecho ningún pedido, la columna de fecha_pedido aparecerá como NULL.

SELECT c.nombre, p.fecha_pedido 
FROM tiendaonline.clientes AS c
LEFT JOIN tiendaonline.pedidos AS p
ON p.id_cliente = c.id_cliente;

¿Qué hace LEFT JOIN?

La cláusula LEFT JOIN devuelve todos los registros de la tabla de la izquierda (clientes), y los registros coincidentes de la tabla de la derecha (pedidos). Si no hay coincidencia, se muestra NULL en las columnas de la tabla de la derecha.

Ejemplo práctico de LEFT JOIN en SQL: Mostrar todos los clientes aunque no tengan pedidos

Esto es útil para detectar, por ejemplo, qué clientes todavía no han hecho pedidos.


Usar LEFT JOIN es una herramienta muy poderosa cuando necesitas mostrar todos los registros de una tabla principal, sin perder información por falta de coincidencia en la tabla relacionada. En este caso, nos permite listar todos los clientes, con o sin pedidos.

¿Qué diferencia hay entre LEFT JOIN y INNER JOIN?

LEFT JOIN: muestra todos los registros de la tabla de la izquierda, aunque no haya coincidencias en la tabla de la derecha.
INNER JOIN: muestra solo los registros que tienen coincidencia en ambas tablas.

¿Qué pasa si un cliente tiene más de un pedido?

Aparecerá una fila por cada pedido. Es decir, si un cliente tiene tres pedidos, su nombre se mostrará tres veces, una por cada fecha de pedido.

¿Cómo sé qué clientes no han hecho ningún pedido?

Puedes agregar una condición para filtrar aquellos clientes con NULL en la columna de fecha_pedido.

SELECT c.nombre
FROM tiendaonline.clientes AS c
LEFT JOIN tiendaonline.pedidos AS p
ON p.id_cliente = c.id_cliente
WHERE p.fecha_pedido IS NULL;

¿LEFT JOIN afecta el rendimiento?

Sí, especialmente en bases de datos grandes. Si solo necesitas los registros con coincidencias, INNER JOIN es más rápido.

Seguir leyendo:

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)

Deja una respuesta

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)
error: Content is protected !!
Hablemos de informática
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.