JOIN en SQL

Una cláusula JOIN en SQL combina filas de dos o más tablas relacionadas. Cuando los datos están normalizados, cada tabla guarda una parte de la información y el JOIN las vuelve a unir mediante una columna común (clave foránea).

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.

En nuestra base de datos de demostración, cada fila de Pedidos indica qué cliente hizo el pedido a través de ID_Cliente . Sin JOIN tendrías que mirar dos tablas por separado; con él ves pedido y nombre del cliente en una sola consulta.

Esta lección es la introducción general. En la siguiente ( INNER JOIN ) practicarás con el editor.

Sintaxis general de JOIN

Plantilla JOIN

    SELECT tabla1.columna, tabla2.columna
FROM tabla1
INNER JOIN tabla2 ON tabla1.clave = tabla2.clave;
  

Ejemplo JOIN: pedidos y clientes

En SQL estándar, JOIN sin más suele equivaler a INNER JOIN . El ejemplo siguiente muestra pedidos con el nombre del cliente:

Pedidos con nombre de cliente

    SELECT Pedidos.ID_Pedido, Clientes.Nombre_Cliente, Pedidos.Fecha
FROM Pedidos
INNER JOIN Clientes ON Pedidos.ID_Cliente = Clientes.ID_Cliente;
  
Abrir en editor

Resultado: cinco filas — un pedido por cada coincidencia entre ambas tablas.

ID_PedidoNombre_ClienteFecha
1Ana García2024-01-15
2María López2024-01-18
3Elena Torres2024-02-02
4Luis Pérez2024-02-10
5John Smith2024-02-14

Tablas relacionadas para JOIN

Observa la columna compartida ID_Cliente :

ID_Cliente Nombre_Cliente Ciudad Pais
1Ana GarcíaMadridEspaña
2Luis PérezBarcelonaEspaña
3María LópezValenciaEspaña
6John SmithLondonUK
Tabla Clientes (extracto de la base de datos de demostración).
ID_Pedido ID_Cliente Fecha
112024-01-15
232024-01-18
352024-02-02
422024-02-10
562024-02-14
Tabla Pedidos. La columna ID_Cliente enlaza con Clientes.
Diagrama: tipos principales de SQL JOIN (INNER, LEFT, RIGHT y FULL OUTER) con Tabla A y Tabla B
Vista de los tipos principales de JOIN : la zona coloreada indica qué filas entran en el resultado (Tabla A / Tabla B).


JOIN entre Productos y Categorias

La misma idea sirve para cualquier par de tablas con una columna en común. Aquí enlazamos Productos.ID_Categoria con Categorias.ID_Categoria :

Nombre de producto y categoría

    SELECT Productos.Nombre_Producto, Categorias.Nombre_Categoria
FROM Productos
INNER JOIN Categorias ON Productos.ID_Categoria = Categorias.ID_Categoria;
  
Abrir en editor

Resultado: cada producto aparece junto al nombre de su categoría (Bebidas, Lácteos, Carnes…).

Nombre_ProductoNombre_Categoria
Café expresoBebidas
Té verdeBebidas
Salsa de tomateCondimentos
Galletas de avenaRepostería
Queso manchegoLácteos
… 5 productos más en la demo

Tipos de JOIN en SQL

  • INNER JOIN — solo filas con coincidencia en las dos tablas.
  • LEFT JOIN — todas las filas de la tabla izquierda; la derecha puede ser NULL .
  • RIGHT JOIN — igual que LEFT, pero conservando la tabla derecha.
  • FULL OUTER JOIN — filas con coincidencia en cualquiera de las dos tablas.

Resumen

  • JOIN une tablas por una columna común definida en ON .
  • Empieza por INNER JOIN si solo quieres filas que existen en ambas tablas.
  • Usa LEFT JOIN para incluir filas sin pareja (por ejemplo, clientes sin pedidos).

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: Pedidos con nombre de cliente

Practica JOIN entre Pedidos y Clientes por ID_Cliente. Usa la tabla Clientes de la demo (Elena Torres, Valencia…).

Consulta

    SELECT Pedidos.ID_Pedido, Clientes.Nombre_Cliente, Pedidos.Fecha
FROM Pedidos
INNER JOIN Clientes ON Pedidos.ID_Cliente = Clientes.ID_Cliente;
  
Abrir en editor

Ejercicio: Productos con su categoría

Practica JOIN entre Productos y Categorias. Usa la tabla Clientes de la demo (Elena Torres, Valencia…).

Consulta

    SELECT Productos.Nombre_Producto, Categorias.Nombre_Categoria
FROM Productos
INNER JOIN Categorias ON Productos.ID_Categoria = Categorias.ID_Categoria;
  
Abrir en editor

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.

Desafío de código

Productos con su categoría

Une las tablas Productos y Categorias para mostrar el nombre del producto (pera, mango, fresa…) y el nombre de su categoría.

Código inicial

    SELECT Productos.Nombre_Producto, Categorias.Nombre_Categoria
FROM Productos
INNER JOIN Categorias ON Productos.ID_Categoria = Categorias.ID_Categoria;
  
Resolver en editor

Criterio de éxito: Debes ver al menos 5 filas con producto y categoría emparejados.

Comprueba lo aprendido

Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.