9 - Uniones con JOIN

Lección 9 del curso SQL Nivel Básico.

En el módulo anterior vimos cómo realizar diferentes tipos de consultas usando la sentencia SELECT, cómo filtrar una tabla de datos usando WHERE y cómo añadir y manipular variables categóricas usando CASE.

Pero como hemos visto, lo interesante de una base de datos relacional es que tenemos múltiples tablas que comparten información.

Por ejemplo, en la base de datos que hemos venido utilizando tenemos una tabla con órdenes que contiene el estado de la orden y la fecha de compra, entre otros datos. Y por otro lado tenemos una tabla que contiene por ejemplo el monto de esas órdenes. Así que nos podría interesar por ejemplo combinar la información de estas dos tablas para, en una única tabla resultante, ver tanto el estado de la orden, como la fecha de compra y el monto.

Para lograr esto debemos realizar lo que se conoce como una unión, que en últimas es la forma de combinar de distintas maneras información proveniente de diferentes tablas en SQL.

Así que en esta lección veremos diferentes maneras de usar la sentencia JOIN en SQL para combinar tablas de una base de datos relacional. En particular, la lección está dividida en 5 partes donde veremos:

  1. Qué es y cómo realizar la unión izquierda (tal vez una de las más usadas) usando la sentencia LEFT JOIN
  2. Cómo realizar la unión derecha (o RIGHT JOIN) y cómo esta se asemeja en gran medida a la unión izquierda
  3. Cómo realizar la intersección de dos tablas usando INNER JOIN
  4. Cómo aplicar técnicas de filtrado, usando la sentencia WHERE, al resultado obtenido con LEFT JOIN, RIGHT JOIN o INNER JOIN
  5. Y cómo aplicar todo lo anterior para realizar la unión de múltiples (más de dos) tablas

Así que comencemos viendo lo básico: el principio de funcionamiento y el uso de la unión izquierda (LEFT JOIN):

Contenido exclusivo suscriptores

Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Como acabamos de ver, la idea básica de la unión izquierda es que como resultado se retornan todas las filas de la tabla del lado izquierdo (la tabla de referencia) y únicamente los registros coincidentes de la tabla derecha.

Esta unión izquierda, que se lleva a cabo usando la sentencia LEFT JOIN, es la más común y tal vez la que casi siempre usaremos en Ciencia de Datos y Machine Learning.

Teniendo claro el funcionamiento de la unión izquierda ya resultará muy sencillo comprender cómo funcionan las uniones derecha (RIGHT JOIN) y la intersección (INNER JOIN). Veamos en detalle la unión derecha:

Contenido exclusivo suscriptores

Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

En el caso de esta unión derecha se retornan todas las filas de la tabla derecha y únicamente los registros coincidentes de la tabla izquierda. Es decir que la unión derecha es similar a la unión izquierda con la diferencia de que la tabla de referencia es precisamente la tabla derecha (¡de ahí el nombre de esta operación!).

De hecho, la unión derecha la podemos reescribir como una unión izquierda (usando LEFT JOIN) pero intercambiando las tablas derecha e izquierda. Y es por eso que esta unión no es de uso tan común y por ello, en la práctica, se sigue prefiriendo el uso de LEFT JOIN.

Veamos ahora cómo realizar la intersección de dos tablas usando INNER JOIN:

Contenido exclusivo suscriptores

Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Acabamos de ver que la sintaxis de INNER JOIN es muy similar a la usada en los dos casos anteriores. Sin embargo, en este caso de la intersección SQL retornará los registros comunes a ambas tablas (es decir que no tendremos como tal una “tabla de referencia” como sí ocurría en los dos casos anteriores).

Así que con esto ya tenemos los tres tipos de unión que más comúnmente podremos encontrar en Ciencia de Datos y Machine Learning. Ahora la idea es ver cómo podemos combinar estas uniones con la sentencia WHERE para de esta forma filtrar la tabla resultante. Veamos cómo hacerlo:

Contenido exclusivo suscriptores

Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Como acabamos de ver, es muy sencillo filtrar la tabla resultante de la unión de dos tablas: simplemente debemos agregar la sentencia WHERE después de realizada la unión y podemos establecer condiciones de filtrado sobre una o múltiples columnas tanto de la tabla resultante como de las tablas de origen.

Habiendo visto este filtrado aplicado a la unión de tablas, lo único que nos resta es ver cómo extender esta idea de la unión a casos en los cuales tenemos tres (o más) tablas:

Contenido exclusivo suscriptores

Suscríbete para tener acceso al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

¡Excelente! Acabamos de ver lo sencillo que resulta unir múltiples tablas: simplemente debemos aplicar las uniones (LEFT, RIGHT o INNER JOIN) de manera secuencial, por pares de tablas. Y de nuevo, podemos seguir usando sentencias como WHERE u ORDER BY para filtrar u ordenar los resultados.

Así que con esto ya tenemos todas las herramientas de unión de tablas que resultan esenciales en la mayoría de proyectos de Ciencia de Datos y Machine Learning.

Entonces, en la próxima (y última) lección del curso veremos otra operación que nos permite operar sobre una tabla y generar agrupaciones para luego extraer información relevante de las mismas. Así que veremos cómo generar agregaciones con GROUP BY.

Todas las lecciones del curso SQL Nivel Básico