¿Qué diferencias hay entre INNER JOIN y LEFT OUTER JOIN?

Contenido del Bootcamp Dirigido por: | Última modificación: 26 de septiembre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Quieres conocer las diferencias entre INNER JOIN y LEFT OUTER JOIN? ¡Pues sigue leyendo! En este post te hablaremos sobre uno de los conceptos más fundamentales dentro del trabajo con bases de datos, pues saber cómo unir tablas de datos con el comando JOIN dentro de un mismo lugar es fundamental para realizar proyectos con databases.

En este caso, nos enfocaremos en contarte las diferencias entre INNER JOIN y LEFT OUTER JOIN y su ejemplificación en SQL.

Diferencias entre INNER JOIN y LEFT OUTER JOIN

En un artículo anterior, te comentamos qué es JOIN en SQL y cuáles son los diferentes tipos que existen, pero aún no nos habíamos enfocado en definir cada uno de los tipos y cómo funcionan. Por eso, para seguir explorando el mismo tema, a continuación te contaremos en qué consisten INNER JOIN y LEFT OUTER JOIN.

En qué consiste INNER JOIN

En primer lugar, INNER JOIN se utiliza para obtener elementos que pueden encontrarse en dos tablas en las que se va a realizar la consulta. La sintaxis general de INNER JOIN se puede distinguir de la siguiente manera:

//INNER JOIN y LEFT OUTER JOIN
//diferencias entre join e inner join
SELECT nombredelaColumna
FROM tabla1
INNER JOIN tabla2
ON tabla1.nombredelaColumna = tabla2.nombredelaColumna;

Ejemplificación de INNER JOIN

Al hacer outer join oracle ejemplos, puede que distingas mejor cómo funciona el INNER JOIN. En este caso, vamos a explorar un ejercicio práctico extraído de una de las entregas de nuestro bootcamp de Big Data, donde los profesores y el curso se propusieron realizar una base de datos que integrara todos los elementos de la serie de Los Simpson.

En este caso, vamos a juntar dos pares de tablas diferentes. En primer lugar, vamos a listar todos los registros dentro de la tabla de lista de personajes con todos lo campos necesarios.

//INNER JOIN y LEFT OUTER JOIN
SELECT PER.ID_PERSONAJE
.PER.DESC_PERSONAJE
.PER.ID_FAMILIA
.FAM.DESC
.PER.ID_SEXO
.SEXO.DESC_SEXO
.PER.ID_MATRIMONIO
PER.ID_LUGAR_RESIDENCIA
.PER.ID_PROFESION
.PER.ID_LUGAR_PROFESION
FROM PERSONAJES PER

Una vez, hayamos listado todas las tablas, vamos a poder integrar las tablas con el comando de INNER JOIN. En el primero caso, uniremos la tabla de SEXO y la tabla alterna de SEXO. A su vez, vamos a unir la tabla familias y la tabla alterna de familias.

INNER JOIN SEXO = SEXO ON PER.ID_SEXO .ID_SEXO

INNER JOIN FAMILIAS FAM ON PER.ID_FAMILIA = FAM.ID_FAMILIA

Los resultados de esta sentencia serán todos los registros que comparten ambas tablas y, como es una tabla que solo alterna el nombre, serán los mismos datos.

En qué consiste LEFT OUTER JOIN

Por otro lado, LEFT OUTER JOIN u outer left es otro de los tipos de los comandos de JOIN que se utiliza para obtener todos los elementos que se encuentran en la tabla de la izquierda o tabla número 1, así como los registros que ambas tablas comparten.

La sintaxis general de LEFT OUTER JOIN luce de la siguiente manera:

//INNER JOIN y LEFT OUTER JOIN
SELECT nombredelasColumnas
FROM tabla1
LEFT JOIN tabla2
ON tabla1.nombredelaColumna = tabla2.nombredelaColumna;

Ejemplificación de LEFT OUTER JOIN

Siguiendo la ejemplificación del ejercicio práctico de Los Simpson que te presentamos hace un momento, a continuación te mostraremos cómo utilizar el comando de LEFT OUTER JOIN con las tablas de familia y de sexo de la base de datos sobre Springfield.

//INNER JOIN y LEFT OUTER JOIN
SELECT PER.ID_PERSONAJE
.PER.DESC_PERSONAJE
.PER.ID_FAMILIA
.FAM.DESC
.PER.ID_SEXO
.SEXO.DESC_SEXO
.PER.ID_MATRIMONIO
PER.ID_LUGAR_RESIDENCIA
.PER.ID_PROFESION
.PER.ID_LUGAR_PROFESION
FROM PERSONAJES PER

Después de listar todos los registros o tablas de Los Simpson, ya podrás integrar las tablas de sexo y la tabla alterna de sexo, así como la tabla de familia y la tabla alterna.

LEFT JOIN SEXO = SEXO ON PER.ID_SEXO .ID_SEXO
LEFT JOIN FAMILIAS FAM ON PER.ID_FAMILIA = FAM.ID_FAMILIA

De esta manera, los resultados que obtendrás son todos los de familia, así como los que comparte con la segunda tabla.

Así pues, la diferencia general entre ambos tipos de JOIN es que el primero, INNER JOIN, va a sacar solo una porción de elementos, en este caso, los elementos que se repitan en ambas tablas. Mientras tanto, el tipo de LEFT OUTER JOIN funciona para sacar los elementos que se repiten, así como los elementos de la primera tabla o la tabla de la izquierda.

Ahora que conoces las diferencias entre INNER JOIN y LEFT OUTER JOIN dentro de una aproximación hacia las bases de datos, su consulta y su desarrollo, seguramente estos conceptos te van a ayudar, de gran manera, a seguir explorando la creación y consulta de bases de datos.

¿Quieres continuar aprendiendo acerca de las diferentes de herramientas para Big Data? ¡Aquí tenemos la forma de continuar! Súmate a KeepCoding con nuestra formación intensiva de Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp y afianza tus habilidades. ¡En pocos meses estarás listo para triunfar en el mercado laboral del sector tecnológico!

Sandra Navarro

Business Intelligence & Big Data Advisor & Coordinadora del Bootcamp en Data Science, Big Data & Machine Learning.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

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