Uniones Internas con INNER JOIN
Aprende a combinar datos de múltiples tablas vinculadas mediante INNER JOIN y la condición ON, obteniendo únicamente las filas con coincidencias exactas en ambas entidades.
¿Qué es un INNER JOIN?
La sentencia INNER JOIN selecciona los registros que tienen valores coincidentes en ambas tablas. Si un estudiante no se ha inscrito en ningún curso, o si un curso no tiene estudiantes registrados, no aparecerán en el resultado del INNER JOIN.
SELECT
estudiantes.nombre,
cursos.titulo,
inscripciones.fecha
FROM inscripciones
INNER JOIN estudiantes ON inscripciones.estudiante_id = estudiantes.id
INNER JOIN cursos ON inscripciones.curso_id = cursos.id;
Diagrama 14.1: Los cuatro tipos fundamentales de uniones relacionales (INNER, LEFT, RIGHT y ANTI-JOIN).
Uso de Alias de Tablas para Código Limpio
En lugar de repetir el nombre completo de la tabla en cada columna (lo que hace que la consulta sea interminable), asignamos alias breves como e para estudiantes, i para inscripciones y c para cursos:
SELECT
e.nombre,
c.titulo,
i.nota
FROM inscripciones i
INNER JOIN estudiantes e ON i.estudiante_id = e.id
INNER JOIN cursos c ON i.curso_id = c.id;
- El Peligro del Producto Cartesiano: Si omites la cláusula
ON(o escribes una condición incorrecta), el motor multiplicará todas las filas de la primera tabla por todas las filas de la segunda (CROSS JOIN), generando millones de combinaciones falsas que pueden colapsar el servidor.
⚡ Cruce Relacional Completo con INNER JOIN
Consulta el nombre del estudiante, el título del curso en el que está matriculado y su calificación definitiva cruzando 3 tablas:
-- Reporte integral de inscripciones con cruce de 3 tablas
SELECT
e.nombre AS estudiante,
e.ciudad,
c.titulo AS curso_matriculado,
c.nivel,
i.fecha AS fecha_ingreso,
i.nota AS calificacion
FROM inscripciones i
INNER JOIN estudiantes e ON i.estudiante_id = e.id
INNER JOIN cursos c ON i.curso_id = c.id
ORDER BY e.nombre ASC;
Mini-Quiz de Retención
Comprueba tu comprensión antes de pasar a la siguiente lecciónSi la tabla estudiantes tiene un alumno que NO se ha matriculado en ningún curso, ¿aparecerá en el resultado de una consulta con INNER JOIN inscripciones?
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.🚀 ¿Quieres dominar Manual Completo de SQL & MySQL y crear proyectos reales?
Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.
🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.