Módulo 4 · Relacionar tablas

INNER JOIN: conservar coincidencias

Combina filas relacionadas y conserva solo las que tienen pareja.

⏱ 22 minNivel: InicialRequisito: Relaciones y claves

0 de 40 lecciones

Al terminar esta lección podrás

  • Escribir un INNER JOIN.
  • Elegir la condición ON.
  • Interpretar las filas que desaparecen.

Antes de empezar: Relaciones y claves. Explica en una frase qué recuerdas antes de continuar.

La idea, sin código

INNER JOIN compara filas mediante ON. Solo aparecen las combinaciones cuya condición es verdadera en ambas tablas.

Pregunta guía: ¿qué representa cada fila antes y después de aplicar este concepto?

Sintaxis mínima

Estructura
FROM tabla_a AS a
INNER JOIN tabla_b AS b
  ON a.clave_foranea = b.clave_primaria

Primer ejemplo guiado

Datos de ejemplo: tabla pedidos
idcliente_idfechatotalestado
10112026-07-0265enviado
10222026-07-04189pendiente
10312026-07-0944enviado
10432026-07-11899cancelado
10552026-07-15118enviado
Datos de ejemplo: tabla clientes
idnombreciudademail
1AnaMadridana@ejemplo.es
2LuisValencialuis@ejemplo.es
3MartaMadridNULL
4OmarSevillaomar@ejemplo.es
5NoraBilbaonora@ejemplo.es

Analiza la consulta antes de comprobar el resultado:

SQL
SELECT p.id, c.nombre, p.total
FROM pedidos AS p
INNER JOIN clientes AS c
  ON p.cliente_id = c.id
ORDER BY p.id;
Resultado esperado
idnombretotal
101Ana65
102Luis189
103Ana44
104Marta899
105Nora118

Qué ocurre paso a paso

  1. FROM parte de pedidos.
  2. ON busca el cliente cuyo id coincide con cliente_id.
  3. SELECT combina columnas de ambas tablas.
Comprueba que lo entendiste

¿Qué ocurre con una fila sin coincidencia en INNER JOIN?

Error frecuente

Consulta o razonamiento problemático

Revisar
ON p.id = c.id

Los valores podrían coincidir por casualidad, pero no representan la relación entre cliente y pedido.

Práctica guiada

Básica · apoyo graduado

Resuelve una sola dificultad cada vez

Muestra id del pedido, nombre del cliente y estado.

Ahora sin guía

Intermedia · práctica autónoma

Transfiere lo aprendido

Muestra título y autor de cada libro.

Comparar con una solución posible
SQL
SELECT l.titulo, a.nombre AS autor
FROM libros AS l
INNER JOIN autores AS a ON l.autor_id = a.id;

Puede existir otra solución válida. Comprueba que produce el resultado pedido y que puedes explicar cada cláusula.

Resumen para llevarte

  • INNER JOIN conserva coincidencias.
  • ON debe expresar una relación real.
  • Los alias de tabla mejoran la lectura.

Siguiente paso: Continúa con LEFT JOIN: conservar la tabla principal.

Consulta rápida