Tipos de JOIN en SQL: 驴cu谩les son los principales?

Por Felipe

Publicado en:

SQL es un lenguaje de consultas estructurado que se utiliza de forma habitual para realizar operaciones con bases de datos relacionales. La sentencia JOIN se utiliza cuando se juntan dos tablas en una operación o consulta en SQL y ambas tablas tienen un campo en común (ambas tablas están relacionadas por un campo).

A continuación, veremos las funciones SQL JOIN y cuáles son sus diferentes tipos de uso más común en consultas SQL.

 

Funciones de SQL JOIN

Las funciones JOIN en SQL server se utilizan cuando en una sentencia SQL se opera con varias tablas, combinando sus columnas para retornar un conjunto de datos. Para extraer datos en SQL Server se utiliza la sentencia Select junto a JOIN, combinando columnas entre una o más tablas de una base de datos relacional y obtener una serie de datos.

Para utilizar la sentencia JOIN en una consulta SQL es necesario que las tablas estén relacionadas de alguna manera, como por ejemplo por su campo identificativo o ID.

 

Tipos de JOIN en SQL

SQL utiliza el estándar ANSI donde se especifican cinco tipos diferentes de JOIN, INNER, LEFT, RIGHT, FULL y CROSS

JOIN

 

INNER JOIN

Este JOIN es el que se utiliza de forma habitual para obtener solo las filas donde exista coincidencia, es decir que el valor del JOIN de la tabla A coincide con el valor del campo en la tabla B.

Un ejemplo de este tipo de JOIN lo podemos ver en una base de datos de alumnos de un colegio, donde se pide mediante una sentencia Select con INNER JOIN, mostrar los alumnos que han faltado al menos un día al colegio en el último mes.

La estructura de una sentencia JOIN INNER es la siguiente:

SELECT nombreColumna(n) FROM tablaA INNER JOIN tablaB ON tablaA.nombreColumna = tablaB.nombreColumna;

 

LEFT JOIN

En la sentencia LEFT JOIN en una consulta Select, se toman todos los datos de la tabla A, pero solo aquellos de la B que coinciden con los de la tabla A.

La estructura de una sentencia LEFT JOIN es la siguiente:

SELECT nombreColumna(n) FROM tablaA LEFT JOIN tablaB ON tablaA.nombreColumna = tablaB.nombreColumna;

 

RIGHT JOIN

La sentencia RIGHT JOIN es la opuesta a la LEFT JOIN, donde en una consulta Select se toman todos los datos de la tabla B, pero solo los de la A que coinciden con los de la tabla B.

La estructura de una sentencia RIGHT JOIN es la siguiente:

SELECT nombreColumna(n) FROM tablaA RIGHT JOIN tablaB ON tablaA.nombreColumna = tablaB.nombreColumna;

 

FULL JOIN

Cuando se quieren obtener todos los datos de ambas tablas sin importar las coincidencias entre ambas, se utiliza la sentencia FULL JOIN. 

Al aplicar la sentencia FULL JOIN, siempre se obtendrán todas las filas de ambas tablas, aunque no cumplan la condición.

 

CROSS JOIN

El CROSS JOIN es un uso diferente de la sentencia JOIN, donde se multiplican las filas de la tabla A por las filas de la tabla B. Si se tiene una tabla A con 20 filas y una tabla B con 10 filas, el CROSS JOIN será 20 x 10 = 200 filas, por ejemplo.

Este tipo de JOIN se utiliza para mostrar todas las combinaciones de todos los registros de ambas tablas. Al realizar el CROSS JOIN no se incluye una condición para el enlace, como sí ocurre en los otros tipos de JOIN. 

 

OUTER JOIN

Aunque OUTER JOIN no es una sentencia que se pueda utilizar en MySQL, por ejemplo, es una función interesante para realizar un JOIN de tablas, ya que presenta todas las filas de ambas tablas (A y B), es decir, es una combinación entre LEFT JOIN y RIGHT JOIN, mostrando los resultados combinados de ambas.

 

En este texto hemos hecho referencia a dos tablas llamándose A y B respectivamente, aunque también puede nombrarse la tabla A como tabla izquierda y la tabla B como tabla derecha, para que la nomenclatura sea más explícita en cuanto a la combinación de datos con LEFT JOIN y RIGHT JOIN. 

Para comprender mejor el concepto de las sentencias JOIN es interesante consultar un gráfico de unión de conjuntos como el que se muestra en la imagen de este texto. Con esta referencia visual es más sencillo entender qué datos se obtienen cuando se aplica cada uno de los tipos de JOIN de SQL.

 

Hemos hablado sobre SQL server y JOIN, una función muy importante a la hora de realizar consultas a una base de datos. La sentencia JOIN se aplica cuando se combinan dos o más tablas de una base de datos y se quiere obtener datos de combinaciones de ambas, cumpliendo una condición determinada.

Aunque el uso de JOIN puede parecer complejo en un principio, con la práctica se asimila bien el concepto y se puede aplicar de forma eficiente para obtener información precisa de la unión de distintas tablas.