You are on page 1of 13

2022

¿Cómo funciona INNER JOIN, LEFT JOIN,


RIGHT JOIN y FULL JOIN?
¿Cómo funciona INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN?

. INNER JOIN: definición y aplicación


En el modelo de bases de datos relacionales, se recurre a las sentencias JOIN
de SQL para consultar diferentes tablas de bases de datos. A excepción de CROSS
JOIN, las sentencias de JOIN son una combinación de producto cartesiano y
selección.
El Sistema Gestor de Bases de Datos (SGBD) primero presenta el producto
cartesiano de dos tablas de bases de datos. A continuación, filtra el resultado según
una condición de selección definida por el usuario a través de una sentencia SQL.
El INNER JOIN se diferencia de todas las demás sentencias de JOIN por mostrar
un conjunto de resultados mínimos, pues solo se muestran los registros de datos
del producto cruzado que cumplen la condición de selección. Todo ello se presenta
en una tabla de resultados llamada “View” que no incluye valores nulos.
¿Cómo funciona INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN?

. INNER JOIN en la práctica


Ilustramos el INNER JOIN con un ejemplo, partiendo de dos tablas. La tabla
“Empleados” contiene todos los empleados de una empresa, junto a sus números
de identificación (e_id) y el número de departamento al que pertenecen (d_id).
Tabla: empleados
¿Cómo funciona INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN?

. Esta tabla muestra dos particularidades: los empleados Ocaña Martínez y Gutiérrez
Doblado trabajan en el mismo departamento. A la empleada Oliva Cansino todavía no
se le ha asignado un departamento (NULL).
La tabla “Departamentos” enumera todos los departamentos de la empresa,
incluyendo el número identificador de cada departamento y su ubicación.
Tabla: departamentos
¿Cómo funciona INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN?

. Ambas tablas están enlazadas por una relación de clave externa. El ID de


departamento, que actúa como clave primaria en la tabla “Departamentos”, se
ha integrado como clave externa en la tabla “Empleados”.
Esta conexión es la que permite generar un INNER JOIN con ambas tablas,
que puede ayudar a determinar, por ejemplo, la localización del puesto de
trabajo de un empleado.
Cuando se consultan bases de datos relacionales, se suele definir como
condición de selección la correspondencia entre una clave primaria y una
externa. La condición se considera cumplida si la clave externa seleccionada
de una tabla coincide con la clave primaria de la otra tabla (=), es decir, solo se
emiten aquellos registros de datos que contienen valores comunes.
Este tipo de INNER JOIN se anota en álgebra relacional como sigue:
empleados⋈d_id=d_iddepartamentos
Sin embargo, los sistemas de bases de datos relacionales no aceptan
comandos en la sintaxis del álgebra relacional, sino como sentencias SQL.
¿Cómo funciona INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN?

.
SELECT * FROM empleados INNER JOIN departamentos ON
empleados.e_id = departamentos.d_id;
¿Cómo funciona INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN?

.
Cláusula LEFT JOIN
A diferencia de un INNER JOIN, donde se busca una intersección respetada por ambas tablas, con LEFT JOIN damos
prioridad a la tabla de la izquierda, y buscamos en la tabla derecha.
Si no existe ninguna coincidencia para alguna de las filas de la tabla de la izquierda, de igual forma todos los
resultados de la primera tabla se muestran
¿Cómo funciona INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN?

.
SELECT E.Nombre as 'Empleado', D.Nombre as 'Departamento'
FROM Empleados E LEFT JOIN Departamentos D ON
E.DepartamentoId = D.Id
¿Cómo funciona INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN?

.
Cláusula RIGHT JOIN
En el caso de RIGHT JOIN la situación es muy similar, pero aquí se da prioridad a la tabla de la derecha.
¿Cómo funciona INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN?

. SELECT E.Nombre as 'Empleado', D.Nombre as 'Departamento'


FROM Empleados E RIGHT JOIN Departamentos D ON
E.DepartamentoId = D.Id
¿Cómo funciona INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN?

.
Cláusula FULL JOIN
Mientras que LEFT JOIN muestra todas las filas de la tabla izquierda, y RIGHT JOIN muestra todas las
correspondientes a la tabla derecha, FULL OUTER JOIN (o simplemente FULL JOIN) se encarga de mostrar todas las
filas de ambas tablas, sin importar que no existan coincidencias (usará NULL como un valor por defecto para dichos
casos).
¿Cómo funciona INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN?

.
SELECT E.Nombre as 'Empleado', D.Nombre as 'Departamento' FROM
Empleados E FULL JOIN Departamentos D ON E.DepartamentoId = D.Id
¿Cómo funciona INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN?

FIN DEL TEMA

You might also like