© zaozaa19/Shutterstock.com

Las operaciones SQL JOIN son una poderosa herramienta para recuperar datos de varias tablas en una base de datos relacional. Tanto si es un analista de datos experimentado, un programador o simplemente alguien que está empezando con bases de datos, es importante comprender los conceptos básicos de las operaciones JOIN: qué son y cómo usarlas.

En este artículo, cubriremos los diferentes tipos de operaciones JOIN en SQL (INNER, LEFT, RIGHT y FULL), así como también proporcionaremos ejemplos de cada tipo utilizando tablas SQL de muestra. ¡Empecemos!

¿Qué ¿Exactamente son las uniones en SQL?

En esencia, una operación SQL JOIN combina datos de dos o más tablas en un único conjunto de resultados. Esta operación se utiliza cuando se necesita recuperar información de varias tablas que tienen algún tipo de relación por medio de una columna relacionada entre ellas. La columna relacionada se denomina condición de combinación.

La tabla resultante contiene todas las columnas de las tablas combinadas, con filas coincidentes según la condición de unión. Por ejemplo, si tiene dos tablas que contienen pedidos de clientes y artículos de pedido, respectivamente, puede usar una operación JOIN para combinar los datos en una tabla que muestre todos los pedidos y sus artículos asociados.

Tipos de uniones en SQL

Como se mencionó anteriormente, hay cuatro tipos principales de uniones en SQL: 

UNIÓN INTERNA, UNIÓN IZQUIERDA (o UNIÓN EXTERNA IZQUIERDA), UNIÓN DERECHA JOIN o (RIGHT OUTER JOIN) y FULL JOIN (o FULL OUTER JOIN).

Cada tipo funciona de manera diferente según el tipo de relación que exista entre las tablas que se unen. Veamos todos y cada uno de ellos en detalle.

INNER JOIN

SQL introdujo el concepto de acceder a muchos registros con un solo comando, sin necesidad de especificar cómo acceder a ellos.

©TippaPatt/Shutterstock.com

Un INNER JOIN es el tipo de unión más utilizado en SQL. A veces se denomina”unión simple”y usar JOIN en lugar de INNER JOIN en una consulta es sintácticamente correcto. Las combinaciones simples se utilizan para combinar filas de dos o más tablas en función de una columna común.

La operación INNER JOIN devuelve solo las filas donde hay una coincidencia entre las columnas relacionadas en ambas tablas. Esto significa que si no hay ninguna coincidencia en una de las tablas, esa fila no se devuelve.

Para ilustrar más este concepto, consideremos dos tablas SQL: Clientes y Pedidos.

Tabla de Clientes

CustomerIDCustomerNameContactName1JohnJohn Smith2MariaMaria Garcia3PeterPeter Johnson

Tabla de pedidos

OrderIDCustomerIDOrderDate112022-03-15222022-04-10312022-04-20

Podemos usar INNER JOIN para obtener los pedidos realizados por cada cliente, así:

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate

FROM Orders

INNER JOIN Clientes

ON Orders.CustomerID=Clientes.CustomerID;

En la consulta de ejemplo anterior, usamos INNER JOIN para combinar las tablas Pedidos y Clientes en función de la columna CustomerID.

El resultado de la consulta será, por lo tanto:

IDPedidoNombreClienteFechaPedido1Juan2022-03-152Maria2022-04-103Juan2022-04-20

LEFT JOIN

A LEFT JOIN (o LEFT OUTER JOIN) se usa para combinar las filas de dos o más tablas basadas en una columna común, pero también devuelve todas las filas de la tabla izquierda (o la primera tabla en la combinación).

Una operación LEFT JOIN, por lo tanto, devuelve todas las filas de la tabla de la izquierda y solo las filas coincidentes de la tabla de la derecha. Si no hay ningún registro coincidente en la tabla de la derecha, el resultado contendrá valores NULL en las columnas de la tabla de la derecha.

Usando las tablas del ejemplo anterior, podemos usar LEFT JOIN para combinar las tablas de Clientes y Pedidos (según el CustomerID) para obtener pedidos realizados por todos los clientes, incluso si no hay pedidos para un cliente en particular, así: 

SELECT Customers.CustomerName, Orders.OrderDate

FROM Customers

LEFT JOIN Orders

ON Customers.CustomerID=Orders.CustomerID;

El resultado de la consulta será:

CustomerNameOrderDateJohn2022-03-15Maria2022-04-10John2022-04-20PeterNULL

Como era de esperar, dado que Peter no tiene pedidos, la columna OrderDate para Peter contiene NULL.

RIGHT JOIN

SQL se basó originalmente en álgebra relacional y cálculo relacional de tuplas.

©Miha Creative/Shutterstock.com

UNA UNIÓN DERECHA (o UNIÓN EXTERNA DERECHA) funciona de la misma manera que una UNIÓN IZQUIERDA, excepto que devuelve todas las filas de la tabla de la derecha (o la segunda tabla de la combinación). En otras palabras, una operación RIGHT JOIN devuelve todas las filas de la tabla de la derecha y solo las filas coincidentes de la tabla de la izquierda.

Si no hay una fila coincidente en la tabla de la izquierda, el resultado contendrá valores NULL en las columnas de la tabla de la izquierda. Usando el ejemplo anterior, podemos usar RIGHT JOIN para obtener todos los pedidos realizados por los clientes, así:

SELECT Customers.CustomerName, Orders.OrderDate

FROM Clientes

RIGHT JOIN Orders

ON Customers.CustomerID=Orders.CustomerID;

La consulta anterior nos dará el siguiente resultado:

CustomerNameOrderDateJohn2022-03-15Maria2022-04-10John2022-04-20

Como esperábamos, Peter no está incluido en el resultado de la consulta porque aún no ha realizado ningún pedido, mientras que John tiene dos.

FULL JOIN

Una operación FULL JOIN devuelve todas las filas de ambas tablas, incluidas las filas no coincidentes. Si no hay coincidencia en una de las tablas, el resultado contendrá valores NULL en las columnas de la tabla sin coincidencia.

UNA UNIÓN COMPLETA, por lo tanto, combina los conjuntos de resultados de una UNIÓN IZQUIERDA y una UNIÓN DERECHA. Devuelve todas las filas de ambas tablas, incluso si no hay una fila coincidente en la otra tabla.

Usando las mismas tablas que antes, podemos usar FULL JOIN para obtener todos los pedidos y clientes, incluso si no hay pedidos para un cliente en particular o si no hay clientes que hayan hecho pedidos todavía, como entonces:

SELECT Customers.CustomerName, Orders.OrderDate

FROM Customers

FULL JOIN Orders

ON Customers.CustomerID=Orders. CustomerID;

Esto nos da el siguiente resultado:

CustomerNameOrderDateJohn2022-03-15Maria2022-04-10John2022-04-20PeterNULL

Peter ahora está incluido en la consulta resultado, a pesar de que aún no ha realizado ningún pedido, y la columna OrderDate para Peter contiene NULL.

FULL OUTER JOIN es equivalente a FULL JOIN, y puede usarlos indistintamente.

¿Existen alternativas a las combinaciones comunes en SQL?

Si bien las operaciones de combinación son una herramienta esencial para combinar datos de varias tablas en SQL, existen métodos alternativos que pueden lograr resultados similares. Estos métodos incluyen subconsultas, instrucciones UNION y UNION ALL. Exploremos brevemente cada una de estas alternativas para ver cómo se comparan con el uso de JOINS.

Subconsultas SQL

Las subconsultas son consultas anidadas que se pueden usar para recuperar datos de una o más tablas. Se pueden usar para filtrar, ordenar o agregar datos, y se pueden anidar dentro de otras consultas. Un caso de uso común para las subconsultas es recuperar datos de una tabla en función de los datos de otra tabla.

Por ejemplo, en lugar de usar una unión para combinar datos de las tablas Pedidos y Clientes, puede usar una subconsulta para recuperar datos de la tabla Clientes en función de los datos de la tabla Pedidos:

SELECCIONE Nombre del cliente, Ciudad

FROM Clientes

DONDE ID del cliente EN (SELECCIONE ID del cliente DE Pedidos );

Esta consulta devolverá todos los clientes que han realizado un pedido, junto con su ciudad.

Declaración UNION

La declaración UNION se utiliza para combinar la resultados de dos o más sentencias SELECT en un único conjunto de resultados. Es similar a una operación de combinación en el sentido de que combina datos de varias tablas, pero no requiere una columna común entre las tablas.

Por ejemplo, puede usar UNION para combinar datos de Clientes y Pedidos. tablas que tienen las mismas columnas:

SELECT CustomerName, ContactName, City FROM Customers

UNIÓN

SELECT CustomerName, ContactName, City FROM Orders;

La consulta anterior devolverá un conjunto de resultados que incluye todos los clientes y pedidos, con sus nombres y ciudades.

Declaración UNION ALL

La declaración UNION ALL es similar a la declaración UNION instrucción, pero no elimina los duplicados del conjunto de resultados. Esto significa que incluirá todas las filas de ambas tablas, incluso si hay duplicados.

Por ejemplo,

SELECT CustomerName, City FROM Customers

UNION ALL

SELECT CustomerName, ShipCity FROM Orders;

Esta consulta nos dará un conjunto de resultados que incluye todos los clientes y pedidos, con sus nombres y ciudades, incluso si hay duplicados.

p>

¿Cuál sería el beneficio de usar uniones en SQL sobre otras alternativas?

Si bien las alternativas anteriores se pueden usar para combinar datos de varias tablas y darnos los resultados esperados, las uniones son las más manera eficiente de hacerlo. Una ventaja clave de las operaciones de unión es que, por lo general, son más eficientes que las subconsultas y las operaciones UNION.

Las operaciones de combinación le permiten recuperar datos de varias tablas en una sola consulta, lo que puede ser más eficaz que ejecutar varias consultas o subconsultas anidadas para lograr el mismo resultado.

Las uniones también son una forma más intuitiva de combinar datos de varias tablas, ya que le permiten especificar exactamente cómo se deben unir los datos en función de la relación entre las tablas. Esto puede facilitar la comprensión y modificación de las consultas a lo largo del tiempo, ya que las condiciones de combinación indican claramente cómo se combinan los datos.

Por supuesto, puede haber situaciones en las que las subconsultas o las operaciones UNION sean más apropiadas que las operaciones de combinación. operaciones, dependiendo de los requisitos específicos de la consulta. Sin embargo, en general, las uniones ofrecen una manera más simple, poderosa y eficiente de combinar datos de varias tablas en SQL en comparación con otros métodos.

Conclusión

Las uniones SQL son críticas para consultar y manipular datos almacenados en bases de datos. Son bastante útiles en el contexto de las bases de datos relacionales, ya que nos permiten crear consultas de datos complejas que de otro modo serían imposibles.

Cada operación de combinación tiene su caso de uso, y debe elegir la adecuada en función de los datos con los que está trabajando y el tipo de resultado que desea obtener. Al dominar los cuatro tipos de uniones en SQL (INTERIOR, IZQUIERDA, DERECHA y COMPLETA), puede trabajar con bases de datos de manera eficiente y extraer información significativa de sus datos.

¿Qué son las uniones en SQL (Interior, Izquierda, Correcto y completo) – Con ejemplos de preguntas frecuentes (FAQ) 

¿Cuál es el significado de JOINS en consultas SQL?

Se utilizan operaciones de unión en SQL para combinar datos de dos o más tablas en un único conjunto de resultados. Esta operación se utiliza cuando se necesita recuperar información de varias tablas que tienen algún tipo de relación por medio de una columna relacionada entre ellas.

¿Cuál es la diferencia entre LEFT JOIN y RIGHT JOIN? ?

UNA UNIÓN IZQUIERDA (o UNIÓN EXTERNA IZQUIERDA) combina las filas de dos o más tablas en función de una columna común, pero también devuelve todas las filas de la tabla izquierda. UN RIGHT JOIN (o RIGHT OUTER JOIN) es lo mismo que LEFT JOIN, excepto que devuelve todas las filas de la tabla derecha.

¿Cuál es el propósito de un FULL JOIN en SQL?

Una operación FULL JOIN devuelve todas las filas de ambas tablas, incluidas las filas no coincidentes. Si no hay coincidencia en una de las tablas, el resultado contendrá valores NULL en las columnas de la tabla sin coincidencia.

¿Cuáles son algunas de las mejores prácticas cuando se usan operaciones JOIN en SQL?

Algunas de las mejores prácticas al usar uniones en SQL incluyen usar el tipo de unión correcto según los datos y el tipo de resultado que desea obtener, usar alias para que su consulta sea más legible y/o usando la cláusula WHERE para refinar el resultado de la consulta.

¿Puede usar más de dos tablas en una operación SQL JOIN?

Sí, puede usar más de dos tablas en una operación de combinación SQL. Puede unir varias tablas especificando las condiciones de unión en la cláusula ON de la consulta. La cláusula ON puede contener múltiples condiciones de combinación, separadas por operadores AND u OR.

By Henry Taylor

Trabajo como desarrollador back-end. Algunos me habréis visto en la conferencia de desarrolladores. Últimamente he estado trabajando en un proyecto de código abierto.