Diferencia entre IINER JOIN y LEFT JOIN
Tanto INNER JOIN como LEFT JOIN son tipos de operaciones de unión en SQL que se utilizan para combinar dos o más tablas en una sola.
La principal diferencia entre ambas es que INNER JOIN solo devuelve las filas que tienen coincidencias en ambas tablas (es decir, solo devuelve las filas que tienen valores coincidentes en ambas tablas), mientras que LEFT JOIN devuelve todas las filas de la tabla izquierda y las coincidencias de la tabla derecha, si las hay.
En otras palabras, un INNER JOIN devuelve solo las filas que se unen correctamente, mientras que un LEFT JOIN devuelve todas las filas de la tabla de la izquierda (incluso si no hay coincidencias en la tabla de la derecha) y las filas que coinciden en la tabla de la derecha.
Ejemplos
Supongamos que tenemos dos tablas: «Empleados» y «Departamentos».
La tabla «Empleados» contiene información sobre los empleados de una empresa, incluyendo su ID, nombre y departamento (ID del departamento).
La tabla «Departamentos» contiene información sobre los departamentos de la empresa, incluyendo su ID y nombre.
INNER JOIN
Si quisiéramos obtener una lista de todos los empleados que tienen un departamento asignado y el nombre de ese departamento, podríamos utilizar un INNER JOIN de la siguiente manera:
SELECT Empleados.Nombre, Departamentos.Nombre AS Departamento
FROM Empleados
INNER JOIN Departamentos ON Empleados.Departamento = Departamentos.ID;
Esto devolvería solo las filas que tienen coincidencias en ambas tablas, es decir, solo los empleados que tienen un departamento asignado y el nombre de ese departamento.
Si un empleado no tiene un departamento asignado, NO se mostrará en los resultados.
LEFT JOIN
Para obtener una lista de todos los empleados y sus respectivos departamentos, podríamos utilizar un LEFT JOIN de la siguiente manera:
SELECT Empleados.Nombre, Departamentos.Nombre AS Departamento FROM Empleados LEFT JOIN Departamentos ON Empleados.Departamento = Departamentos.ID;
Esto devolvería una tabla que contiene todos los empleados, incluso aquellos que no tienen un departamento asignado, junto con el nombre de su departamento, si lo tienen.