Curso
Entender los matices de los joins en SQL es imprescindible para cualquiera que trabaje con bases de datos relacionales. En este tutorial, vamos a profundizar en LEFT JOIN y LEFT OUTER JOIN en SQL.
Y si quieres dominar SQL y llevar tus consultas al siguiente nivel, apúntate a un curso como Joining Data in SQL que te ayudará de verdad a comprender las diferencias sutiles pero importantes tanto en joins de una tabla como de dos.
Perfeccionamiento de SQL para principiantes
LEFT JOIN vs. LEFT OUTER JOIN
No hay ninguna diferencia entre un LEFT JOIN y un LEFT OUTER JOIN. Son funciones de SQL intercambiables. Ambas hacen exactamente lo mismo: devuelven todas las filas de la tabla izquierda y las filas coincidentes de la tabla derecha.
Veamos un ejemplo real para comprobar por nosotros mismos que LEFT JOIN y LEFT OUTER JOIN son lo mismo. Para ello, crearemos y usaremos dos tablas de muestra: Employees y Departments.
CREATE TABLE Departments (
DepartmentID INT PRIMARY KEY,
DepartmentName VARCHAR(50)
);
INSERT INTO Departments (DepartmentID, DepartmentName) VALUES
(1, 'HR'),
(2, 'IT'),
(3, 'Finance'),
(4, 'Marketing');
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
EmployeeName VARCHAR(50),
DepartmentID INT,
FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID)
);
INSERT INTO Employees (EmployeeID, EmployeeName, DepartmentID) VALUES
(1, 'Alice', 1),
(2, 'Bob', 2),
(3, 'Charlie', NULL),
(4, 'David', 3);
LEFT JOIN
Ahora que tenemos listas nuestras dos tablas, probemos una consulta con LEFT JOIN.
SELECT Employees.EmployeeID, Employees.EmployeeName,
Departments.DepartmentName
FROM Employees
LEFT JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

Salida de la función LEFT JOIN. Imagen del autor
Nuestra consulta con LEFT JOIN devuelve todas las filas de la tabla de la izquierda, Employees, y las filas coincidentes de la tabla de la derecha, Departments. Si no hay coincidencia, se devuelven valores NULL o ausentes para las columnas de la tabla Departments, que es la de la derecha.
LEFT OUTER JOIN
Ahora probémoslo con LEFT OUTER JOIN:
SELECT Employees.EmployeeID, Employees.EmployeeName, Departments.DepartmentName
FROM Employees
LEFT OUTER JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

Salida de la función LEFT OUTER JOIN. Imagen del autor
Como ves, ambas consultas han producido el mismo resultado.
Cuándo usar LEFT JOIN o LEFT OUTER JOIN
LEFT JOIN / LEFT OUTER JOIN es increíblemente útil en muchos escenarios. Aquí tienes algunos ejemplos.
-
Identificar registros sin correspondencia: Puedes usar
LEFT JOINoLEFT OUTER JOINpara encontrar registros en una tabla que no tienen correspondencia en otra. En la consulta anterior, puedes ver que nuestro amigo Charlie no está asignado a ningún departamento. -
Comprobaciones de integridad de datos: Puedes usar
LEFT JOINoLEFT OUTER JOINpara garantizar la consistencia de los datos entre tablas comprobando registros ausentes o no coincidentes. Por ejemplo, podríamos haber usado una cláusulaWHEREpara filtrar el conjunto de resultados e incluir solo las filas donde el registroDepartments.DepartmentIDseaNULLo falte. -
Combinar datos relacionados: Usa
LEFT JOINoLEFT OUTER JOINpara combinar datos de tablas relacionadas en un único informe completo. Este enfoque agrega información de múltiples fuentes y ofrece una visión completa de tus datos.
Rendimiento y técnicas avanzadas
Aunque LEFT JOIN y LEFT OUTER JOIN son sencillos, hay varias consideraciones de rendimiento y técnicas avanzadas que conviene tener en cuenta.
Impacto en el rendimiento de la consulta
LEFT JOIN / LEFT OUTER JOIN puede afectar al rendimiento cuando trabajas con conjuntos de datos grandes. A medida que aumenta el número de filas de tus tablas, también aumenta el tiempo necesario para procesar el join y recuperar los resultados. Por tanto, es fundamental tener en cuenta el tamaño de las tablas implicadas y optimizar tus consultas para que sean eficientes.
Estrategias de indexación para mejorar el rendimiento
Usar índices en las columnas implicadas en las condiciones del join puede mejorar significativamente el tiempo de procesamiento. Un índice ayuda a la base de datos a encontrar y emparejar filas entre tablas con rapidez. Por ejemplo, si a menudo unes tablas por DepartmentID, crear un índice en la columna DepartmentID en ambas tablas acelerará el proceso, haciendo que tus consultas sean más eficientes y ágiles.
Comparación con otros tipos de joins
Entender cuándo usar distintos joins (INNER JOIN, RIGHT JOIN, FULL OUTER JOIN) es importante para optimizar consultas. LEFT JOIN o LEFT OUTER JOIN es especialmente útil cuando necesitas todos los registros de la tabla izquierda. Si no necesitas todos los registros de la tabla izquierda, plantéate otra opción.
Uso con subconsultas
Las subconsultas, también llamadas consultas internas o anidadas, ayudan en escenarios complejos de recuperación de datos. Combinadas con LEFT JOIN o LEFT OUTER JOIN, pueden ayudarte a filtrar y agregar datos, unir tablas de forma condicional y descomponer consultas complejas en otras más manejables.
Conclusiones
Es fundamental entender las funciones LEFT JOIN y LEFT OUTER JOIN en SQL para una gestión, elaboración de informes y análisis de datos eficaces. Aunque su funcionalidad es idéntica, conocer sus casos de uso, implicaciones de rendimiento y técnicas avanzadas te ayudará a emplearlas mejor. Para seguir aprendiendo, explora estas fuentes:
- Introduction to SQL: aprende a crear y consultar bases de datos relacionales con SQL.
- SQL Fundamentals: adquiere las habilidades fundamentales de SQL que necesitas para interactuar con tus datos y consultarlos.
- Learn SQL: hazte con los conocimientos de un lenguaje muy demandado que te permite gestionar datos en bases de datos relacionales.
- Reporting in SQL: con este curso práctico, aprenderás a crear tus propios informes y paneles en SQL, y perfeccionarás tus habilidades de exploración, limpieza y validación de datos.
Obtén una Certificación Top SQL
Profesional experimentado en Ciencia de Datos, Inteligencia Artificial, Analítica y Funciones Estratégicas con más de 18 años de experiencia en las áreas de -: Ciencia de datos, ML e IA ~ Ciencia de datos, Aprendizaje automático supervisado y no supervisado, Aprendizaje profundo, Modelado predictivo, Procesamiento del lenguaje natural (NLP), Modelado y análisis estadístico, Optimización, Estrategia empresarial y Analítica ~ Desarrollo y evaluación de modelos empresariales, Analítica descriptiva y de diagnóstico, EDA, Visualización, Análisis de causa raíz, Análisis de sensibilidad y de escenarios.
Preguntas frecuentes sobre SQL
¿Cuál es la diferencia entre LEFT JOIN y LEFT OUTER JOIN?
No hay diferencia: LEFT JOIN y LEFT OUTER JOIN hacen lo mismo y pueden usarse indistintamente.
¿Cuándo debería usar un LEFT JOIN?
Usa LEFT JOIN cuando necesites todos los registros de la tabla izquierda y los registros coincidentes de la tabla derecha. Los registros sin correspondencia en la tabla derecha tendrán valores NULL.
¿LEFT JOIN devolverá más filas que la tabla izquierda?
No. LEFT JOIN devuelve todas las filas de la tabla izquierda y las coincidentes de la derecha. No aumenta el número de filas de la tabla izquierda.
¿Cómo gestiono los valores NULL en los resultados de un LEFT JOIN?
Puedes usar la función COALESCE para sustituir valores ausentes por un valor predeterminado en el conjunto de resultados.
¿Cuáles son los casos de uso habituales de LEFT JOIN?
Los casos de uso más comunes incluyen identificar registros sin correspondencia, realizar comprobaciones de integridad de datos y combinar conjuntos de datos en procesos ETL.


