Tipos de Outer Join en SQL: Left y Right Join

Autor: | Última modificación: 8 de abril de 2024 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

Algunos de nuestros reconocimientos:

Premios KeepCoding

En este artículo vamos a hablar de un tema fundamental en el modelado y la manipulación de bases de datos: los tipos de Outer Join en SQL.

Cuando hablamos de los tipos de Outer Joins, nos referimos a una técnica que no solo nos permite mostrar los datos que comparten dos tablas, sino también aquellos que no tienen un match directo en la otra tabla. Los Outer Joins son esenciales para obtener una visión completa y detallada de los datos en cuestión. Aunque en SQL existen varios tipos de Join (Inner Join, Left Outer Join, Right Outer Join, y Full Outer Join), aquí vamos a centrarnos en los tipos de Outer Join, específicamente en el Left y el Right Join.

¿Qué son los Outer Joins?

Los tipos de Outer Join en SQL son una herramienta valiosa que nos permite manejar y mostrar los datos de una forma más completa y flexible. A diferencia del Inner Join, que solo muestra los registros coincidentes de ambas tablas, los Outer Joins nos permiten ver todos los registros de una tabla, incluso si no hay coincidencias en la otra.

Hay tres tipos de Outer Join: Left, Right, y Full.

Left Outer Join en SQL

Imagina que tienes dos tablas: una de coches y otra de revisiones de coches. Quieres mostrar un listado de todos los coches y, si tienen revisiones, los datos de las revisiones. Si no tienen revisiones, quieres que aparezca el coche, pero sin datos de revisiones. Aquí es donde entra en juego el Left Outer Join.

El Left Outer Join en SQL devuelve todos los registros de la tabla de la izquierda (en este caso, coches) y los registros coincidentes de la tabla de la derecha (revisiones). Si no hay una coincidencia, el resultado es NULL en el lado de la tabla derecha. Eso significa que si un coche no ha tenido revisiones, aún aparecerá en tu lista, pero las columnas de revisión estarán vacías.

Right Outer Join en SQL

El Right Outer Join en SQL, por otro lado, es exactamente lo contrario del Left Outer Join. En lugar de devolver todos los registros de la tabla de la izquierda, devuelve todos los registros de la tabla de la derecha y los registros coincidentes de la tabla de la izquierda. Si no hay una coincidencia, el resultado es NULL en el lado de la tabla izquierda.

Usando nuestro ejemplo anterior, si utilizamos un Right Outer Join con coches como tabla de la izquierda y revisiones como tabla de la derecha, mostraría todas las revisiones y solo los coches que han tenido revisiones.

Un pequeño truco: aunque el Right Join puede ser útil en ciertos casos, puedes obtener el mismo resultado con un Left Join simplemente cambiando el orden de las tablas en tu consulta. Así, siempre puedes usar un Left Join, poniendo como primera tabla la que sabes que siempre tiene datos.

¿Por qué son importantes los tipos de Outer Join?

Los tipos de Outer Join, tanto Left como Right, son cruciales para el modelado y manejo de bases de datos en el desarrollo web. Nos proporcionan una flexibilidad y una profundidad de datos que otros tipos de joins no pueden ofrecer. Permiten mostrar todos los datos, incluso cuando no hay coincidencias entre tablas, dando una visión más completa del conjunto de datos.

Conoce más sobre desarrollo web

El dominio de los tipos de Outer Joins es un paso fundamental para cualquier persona que quiera adentrarse en el mundo del desarrollo web y trabajar con bases de datos. Si estás interesado en seguir aprendiendo y perfeccionando tus habilidades en desarrollo web y bases de datos, te invitamos a apuntarte al Desarrollo Web Full Stack Bootcamp de KeepCoding. Aprenderás todo lo que necesitas saber sobre desarrollo web, bases de datos y mucho más, lo que te preparará para un emocionante cambio de vida en un sector tecnológico en constante crecimiento. ¡Da el salto y cambia tu vida ya mismo con KeepCoding!

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado