Combinación interna INNER JOIN
En la lección anterior vimos la estructura general de una consulta multitabla:
SELECT campos_tablas
FROM tabla_1
[INNER | {LEFT | RIGHT | FULL} [OUTER]] JOIN tabla_2
ON condicion_combinacion
[...]- [ ]parte opcional
- { a | b }una de las opciones
- ...se puede repetir
- campos_tablas
Las columnas de cualquiera de las tablas combinadas que aparecerán en el resultado.
- tabla_1
- La primera tabla, a la que se unen las demás.
- INNER
Combinación interna: en el resultado solo aparecen las filas para las que se ha encontrado pareja. Es el tipo de combinación por defecto, así que puedes omitir INNER.
Palabra claveOpcional- LEFT | RIGHT | FULL
Combinación externa: izquierda, derecha o completa. Además de las parejas, en el resultado aparecen las filas sin pareja de la tabla izquierda, de la derecha o de ambas.
Palabra claveOpcional- OUTER
Solo subraya que la combinación es externa. Se escribe después de LEFT, RIGHT o FULL y no cambia el resultado.
Palabra claveOpcional- tabla_2
La tabla que se une. Para unir más tablas, añade para cada una su propio JOIN ... ON ....
- condicion_combinacion
La regla por la que las filas de las dos tablas se encuentran entre sí, por ejemplo Payments.family_member = FamilyMembers.member_id.
En una consulta multitabla con combinación interna, la estructura general es esta:
SELECT campos_tablas
FROM tabla_1
[INNER] JOIN tabla_2
ON condicion_combinacion
[...]- [ ]parte opcional
- ...se puede repetir
- campos_tablas
Las columnas de cualquiera de las tablas combinadas que aparecerán en el resultado.
- tabla_1
- La primera tabla, a la que se unen las demás.
- INNER
Combinación interna: en el resultado solo aparecen las filas para las que se ha encontrado pareja. Es el tipo de combinación por defecto, así que puedes omitir INNER.
Palabra claveOpcional- tabla_2
La tabla que se une. Para unir más tablas, añade para cada una su propio JOIN ... ON ....
- condicion_combinacion
La regla por la que las filas de las dos tablas se encuentran entre sí, por ejemplo Payments.family_member = FamilyMembers.member_id.
Por ejemplo, una consulta puede tener este aspecto:
MySQL 8.4SELECT family_member, member_name FROM Payments INNER JOIN FamilyMembers ON Payments.family_member = FamilyMembers.member_id
Qué es una combinación interna
Una combinación interna busca los pares de registros de dos tablas que cumplen la condición de combinación y, con ellos, forma una nueva tabla que contiene las columnas de la primera y de la segunda tabla de origen.
Visualmente, se ve así:

Como nuestra condición exige que las columnas Payments.good_id y Goods.good_id sean iguales, en el resultado de la combinación interna solo aparecerán los registros en los que ambas tablas tienen el mismo valor de good_id.
Usar WHERE para combinar tablas
Para hacer una combinación interna también puedes usar la cláusula WHERE. Por ejemplo, la consulta anterior, que escribimos con INNER JOIN, quedaría así:
MySQL 8.4SELECT family_member, member_name FROM Payments, FamilyMembers WHERE Payments.family_member = FamilyMembers.member_id