¡Suscríbete a mi canal de Youtube!

Donaciones

▷ Uniones entre tablas 【 INNER JOIN, LEFT JOIN, RIGHT JOIN 】 en MySQL


Guía Completa sobre INNER JOIN, LEFT JOIN y RIGHT JOIN en MySQL

Cuando trabajamos con bases de datos relacionales, es común que la información esté distribuida en varias tablas. Para combinarlas y obtener datos significativos, utilizamos JOINs en SQL. En este artículo, te explicaré de manera clara y con ejemplos prácticos cómo funcionan los INNER JOIN, LEFT JOIN y RIGHT JOIN.

✨ 1. Introducción a los JOINs

Un JOIN en SQL se usa para combinar filas de dos o más tablas basadas en una condición común. Dependiendo del tipo de JOIN, podemos incluir o excluir ciertos datos según si tienen coincidencias en ambas tablas.

Para ilustrar estos conceptos, usaremos un ejemplo de una base de datos de estudiantes y sus inscripciones a cursos.

📝 2. Creación de las Tablas

Vamos a definir dos tablas:

  1. Estudiantes (estudiantes):

    • id_estudiante (PK) - Identificador único del estudiante.

    • nombre - Nombre del estudiante.

    • correo - Correo del estudiante.

  2. Inscripciones (inscripciones):

    • id_inscripcion (PK) - Identificador único de la inscripción.

    • id_estudiante (FK) - Clave foránea que hace referencia a un estudiante.

    • curso - Nombre del curso en el que está inscrito.

Creación de las Tablas en SQL

CREATE TABLE estudiantes ( 
    id_estudiante INT PRIMARY KEY, 
    nombre VARCHAR(100), 
    correo VARCHAR(100) UNIQUE 
); 
 
CREATE TABLE inscripciones (
    id_inscripcion INT PRIMARY KEY,
    id_estudiante INT,
    curso VARCHAR(100),
    FOREIGN KEY (id_estudiante) 
    REFERENCES estudiantes(id_estudiante) 
); 
 

📚 3. Inserción de Datos

INSERT INTO estudiantes (id_estudiante, nombre, correo) VALUES
(1, 'Ana Gómez', 'ana@gmail.com'),
(2, 'Juan Pérez', 'juan@gmail.com'),
(3, 'Carlos López', 'carlos@gmail.com'),
(4, 'Pedro Méndez', 'pedro@gmail.com'); -- Estudiante sin inscripción 
 
INSERT INTO inscripciones (id_inscripcion, id_estudiante, curso) VALUES
(1, 1, 'Matemáticas'),
(2, 2, 'Física'),
(3, 2, 'Química'),
(4, 3, 'Historia'),
(5, NULL, 'Biología'); -- Inscripción sin estudiante asociado
 
Ahora que tenemos los datos listos, veamos cómo funcionan los distintos tipos de JOINs.
 

🔍 4. Tipos de JOINs en SQL

🌟 INNER JOIN: Coincidencias en ambas tablas

El INNER JOIN devuelve únicamente los registros que tienen coincidencias en ambas tablas.

SELECT e.id_estudiante, e.nombre, i.curso
FROM estudiantes e 
INNER JOIN inscripciones i ON e.id_estudiante = i.id_estudiante;

Salida esperada:
id_estudiante nombre curso
1 Ana Gómez Matemáticas
2 Juan Pérez Física
2 Juan Pérez Química
3 Carlos López Historia
  • Excluye a Pedro porque no tiene cursos.

  • Excluye Biología porque no tiene un estudiante asignado.

🔎 RIGHT JOIN: Todas las inscripciones, aunque no tengan estudiante

El RIGHT JOIN devuelve todos los registros de la tabla derecha (inscripciones), y si no tienen coincidencia en la izquierda (estudiantes), muestra NULL.

SELECT e.id_estudiante, e.nombre, i.curso
FROM estudiantes e 
RIGHT JOIN inscripciones i ON e.id_estudiante = i.id_estudiante;

RIGHT JOIN: Todas las inscripciones (aunque no tengan estudiante)

id_estudiante nombre curso
1 Ana Gómez Matemáticas
2 Juan Pérez Física
2 Juan Pérez Química
3 Carlos López Historia
NULL NULL Biología
  • Incluye Biología, aunque no tenga estudiante asociado.

  • Excluye a Pedro porque no tiene inscripciones.

🔄 LEFT JOIN: Todos los estudiantes, aunque no tengan inscripción

El LEFT JOIN devuelve todos los registros de la tabla izquierda (estudiantes), y si no tienen coincidencia en la derecha (inscripciones), muestra NULL.

SELECT e.id_estudiante, e.nombre, i.curso
FROM estudiantes e 
LEFT JOIN inscripciones i ON e.id_estudiante = i.id_estudiante;

Salida esperada: 

LEFT JOIN: Todos los estudiantes (aunque no tengan inscripción)

id_estudiante nombre curso
1 Ana Gómez Matemáticas
2 Juan Pérez Física
2 Juan Pérez Química
3 Carlos López Historia
4 Pedro Méndez NULL
  • Incluye a Pedro aunque no tiene inscripciones.

  • Excluye Biología, porque no tiene estudiante asociado.

🔖 5. Comparación de JOINs

Comparación de JOINs en SQL

Tipo de JOIN Incluye estudiantes sin curso Incluye cursos sin estudiante
INNER JOIN ❌ No ❌ No
LEFT JOIN ✅ Sí ❌ No
RIGHT JOIN ❌ No ✅ Sí

🌟 Conclusión

Los JOINs son fundamentales para manejar bases de datos relacionales.

  • Usa INNER JOIN si solo quieres coincidencias.

  • Usa LEFT JOIN si necesitas todos los registros de la tabla izquierda.

  • Usa RIGHT JOIN si necesitas todos los registros de la tabla derecha.

¡Espero que esta guía te ayude a dominar los JOINs en SQL! ¿Tienes dudas o necesitas más ejemplos? Déjamelo en los comentarios. 🚀

En el siguiente video te explico como usar correctamente los JOINs en MySQL.


No te olvides darle LIKE y SUSCRIBIRTE al blog y a mi canal si te gustó el video. Si gustas realizar una DONACIÓN para ayudarme a mejorar el canal y mi contenido, puedes hacerlo mediante el botón ❤$GRACIAS ubicado en la parte posterior del video en YouTube o visitando el enlace https://linktr.ee/ezavalar y haciendo clic en el botón Donaciones.

Comentarios

Entradas populares

Seguidores del blog

Suscríbete al blog

Recibe mis nuevas publicaciones por email: