SQL
Tutorial SQL: Uso de INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN
SQL JOIN: combinaciones de tablas en SQL para unir datos de manera eficiente. Aprende cómo usar INNER, LEFT, RIGHT y FULL JOIN en bases de datos relacionales.
Aprende SQL GRATIS y certifícateLas cláusulas JOIN
en SQL son fundamentales para combinar filas de diferentes tablas basándose en una columna relacionada. Existen cuatro tipos principales: INNER JOIN, LEFT JOIN, RIGHT JOIN, y FULL JOIN.
Ciertas bases de datos utilizan la nomenclatura OUTER
, pero su funcionamiento es el mismo.
Tipos de JOIN y sus usos
INNER JOIN
El INNER JOIN
es el tipo de unión más común que se utiliza en SQL. Devuelve registros que tienen valores coincidentes en ambas tablas. Si no hay una coincidencia, la fila no se incluirá en el resultado.
Por ejemplo, si se tienen dos tablas, Clientes
y Pedidos
, y se quiere encontrar todos los clientes que han realizado al menos un pedido, se podría usar INNER JOIN
de la siguiente manera:
SELECT Clientes.Nombre, Pedidos.Producto
FROM Clientes
INNER JOIN Pedidos ON Clientes.ID = Pedidos.ID_Cliente;
En este ejemplo, Clientes.ID
y Pedidos.ID_Cliente
son los campos que se utilizan para determinar la coincidencia entre las dos tablas. Solo se devolverán los registros donde exista un ID de cliente en la tabla Pedidos
que coincida con un ID de cliente en la tabla Clientes
.
Esta unión es ideal cuando se requiere información que está presente en ambas tablas.
LEFT JOIN (o LEFT OUTER JOIN)
El LEFT JOIN
devuelve todos los registros de la tabla izquierda (la primera tabla), y los registros coincidentes de la tabla derecha (la segunda tabla). Si no hay una coincidencia, el resultado es NULL en el lado derecho.
Siguiendo con el ejemplo anterior, si se quieren encontrar todos los clientes, sin importar si han realizado un pedido o no, se podría usar LEFT JOIN
de la siguiente manera:
SELECT Clientes.Nombre, Pedidos.Producto
FROM Clientes
LEFT JOIN Pedidos ON Clientes.ID = Pedidos.ID_Cliente;
En este caso, se devolverán todos los registros de la tabla Clientes
, independientemente de si tienen una coincidencia en la tabla Pedidos
. Para los clientes sin pedidos, el lado derecho (Pedidos.Producto
) será NULL.
LEFT JOIN
es útil cuando se quieren incluir todos los registros de una tabla, independientemente de si tienen una coincidencia en la otra tabla.
RIGHT JOIN (o RIGHT OUTER JOIN)
El RIGHT JOIN
devuelve todos los registros de la tabla derecha, y los registros coincidentes de la tabla izquierda. Si no hay una coincidencia, el resultado es NULL en el lado izquierdo.
Si, en lugar de todos los clientes, se quieren encontrar todos los pedidos, sin importar si tienen un cliente asociado o no, se podría usar RIGHT JOIN
de la siguiente manera:
SELECT Clientes.Nombre, Pedidos.Producto
FROM Clientes
RIGHT JOIN Pedidos ON Clientes.ID = Pedidos.ID_Cliente;
En este caso, se devolverán todos los registros de la tabla Pedidos
, independientemente de si tienen una coincidencia en la tabla Clientes
. Para los pedidos sin cliente, el lado izquierdo (Clientes.Nombre
) será NULL.
FULL JOIN (o FULL OUTER JOIN)
El FULL JOIN
devuelve todos los registros cuando hay una coincidencia en la tabla izquierda o la tabla derecha. Si no hay una coincidencia, el resultado es NULL en el lado que no tiene coincidencias.
Si se quieren encontrar todos los clientes y todos los pedidos, sin importar si tienen una coincidencia entre sí o no, podría usarse FULL JOIN
de la siguiente manera:
SELECT Clientes.Nombre, Pedidos.Producto
FROM Clientes
FULL JOIN Pedidos ON Clientes.ID = Pedidos.ID_Cliente;
En este caso, se devolverán todos los registros de las tablas Clientes
y Pedidos
, independientemente de si tienen una coincidencia entre ellos. Para los pedidos sin cliente, el lado izquierdo (Clientes.Nombre
) será NULL, y para los clientes sin pedidos, el lado derecho (Pedidos.Producto
) será NULL.
Alternativa para FULL JOIN en MySQL
Es importante recordar que no todos los sistemas de gestión de bases de datos soportan FULL JOIN
. Por ejemplo, MySQL no soporta FULL JOIN
, pero se puede lograr el mismo resultado utilizando una combinación de LEFT JOIN
y UNION
.
SELECT Clientes.Nombre, Pedidos.Producto
FROM Clientes
LEFT JOIN Pedidos ON Clientes.ID = Pedidos.ID_Cliente
UNION
SELECT Clientes.Nombre, Pedidos.Producto
FROM Clientes
RIGHT JOIN Pedidos ON Clientes.ID = Pedidos.ID_Cliente;
Conclusión
Las cláusulas JOIN son herramientas poderosas en SQL que permiten combinar información de múltiples tablas de manera eficiente y flexible. Comprender cuándo y cómo usar cada tipo de JOIN es esencial para crear consultas efectivas y optimizadas.
Ejercicios de esta lección Uso de INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN
Evalúa tus conocimientos de esta lección Uso de INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Todas las lecciones de SQL
Accede a todas las lecciones de SQL y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Sql
Introducción Y Entorno
Sublenguajes De Sql: Data Definition Language Y Data Manipulation Language
Introducción Y Entorno
Instalación De Mysql
Introducción Y Entorno
Instalación De Postgresql
Introducción Y Entorno
Tipos De Datos
Introducción Y Entorno
Bases De Datos Y Tablas
Introducción Y Entorno
Creación De Bases De Datos Y Tablas: Create Database, Create Table
Operaciones Básicas
Consultas Básicas De Selección: Select Y Where
Operaciones Básicas
Inserción De Datos: Insert Into
Operaciones Básicas
Actualización De Datos: Update
Operaciones Básicas
Eliminación De Datos: Delete
Operaciones Básicas
Clasificación De Resultados Con Order By
Filtros Y Clasificación
Filtrado De Valores Únicos Con Distinct
Filtros Y Clasificación
Uso De Funciones Agregadas: Count, Sum, Avg, Max, Min
Funciones Agregadas Y Agrupaciones
Agrupación De Resultados Con Group By
Funciones Agregadas Y Agrupaciones
Filtrado De Grupos De Resultados Con Having
Funciones Agregadas Y Agrupaciones
Relaciones Entre Tablas
Joins Y Subqueries
Uso De Inner Join, Left Join, Right Join, Full Join
Joins Y Subqueries
Creación Y Uso De Subqueries
Joins Y Subqueries
Alterar La Estructura De Tablas Existentes: Alter Table
Manipulación De Tablas Y Datos
Renombrar Tablas Y Bases De Datos: Rename
Manipulación De Tablas Y Datos
Vaciar Tablas Y Bases De Datos: Drop
Manipulación De Tablas Y Datos
Creación Y Uso De Funciones
Funciones Y Procedimientos Almacenados
Creación Y Uso De Procedimientos Almacenados
Funciones Y Procedimientos Almacenados
Creación Y Manejo De Usuarios Y Roles
Seguridad Y Administración De Bases De Datos Sql
Asignación Y Gestión De Permisos
Seguridad Y Administración De Bases De Datos Sql
Copias De Seguridad Y Restauración De Bases De Datos
Seguridad Y Administración De Bases De Datos Sql
Optimización De Consultas
Sintaxis Avanzada
Uso De Índices Y Particiones
Sintaxis Avanzada
Uso De Vistas
Sintaxis Avanzada
Triggers Y Eventos
Sintaxis Avanzada
Certificados de superación de SQL
Supera todos los ejercicios de programación del curso de SQL y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender los cuatro tipos principales de cláusulas
JOIN
en SQL:INNER JOIN
,LEFT JOIN
,RIGHT JOIN
yFULL JOIN
. - Conocer cómo utilizar
INNER JOIN
para obtener registros con valores coincidentes en varias tablas. - Conocer cómo utilizar
LEFT JOIN
yRIGHT JOIN
para obtener todos los registros de una tabla, más los registros coincidentes de otra segunda tabla. - Conocer cómo utilizar
FULL JOIN
para obtener todos los registros de entre varias tablas, coincidentes o no.