Los comandos JOIN son algunos de los comandos de SQL más im­po­r­ta­n­tes para el análisis y la edición de bases de datos re­la­cio­na­les. Permiten consultar datos vi­n­cu­la­dos en múltiples tablas y fu­sio­nar­los en una tabla común. Según lo que se pretenda conseguir, pueden uti­li­zar­se comandos JOIN como INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN o FULL JOIN.

¿Qué son los comandos de SQL JOIN?

Para trabajar con bases de datos (di­re­c­ta­me­n­te, on-premises o vía nube), el estándar es el lenguaje de pro­gra­ma­ción y de bases de datos SQL. No solo permite crear bases de datos re­la­cio­na­les, también sirve para realizar consultas de datos mediante diversos comandos de SQL. En concreto, SQL JOINS es una de las ca­te­go­rías con los comandos más im­po­r­ta­n­tes y más uti­li­za­dos.

JOINS dispone de comandos con los que puedes consultar, vincular y fusionar datos entre tablas de forma si­g­ni­fi­ca­ti­va. El único requisito es que haya un vínculo lógico entre las tablas. Este vínculo se establece mediante las co­rre­s­po­n­die­n­tes claves primarias y externas que pueden uti­li­zar­se para combinar datos con comandos JOIN.

Nota

Las claves primarias y externas crean valores de co­no­ci­mie­n­to im­po­r­ta­n­tes para SQL JOINS. Las claves primarias ide­n­ti­fi­can cla­ra­me­n­te las filas y no deben contener valores vacíos. Las claves externas crean un vínculo entre las tablas. Por ejemplo: en una tabla de empleados, el “ide­n­ti­fi­ca­dor de empleado” es la clave primaria. En una tabla sobre coches, el “ide­n­ti­fi­ca­dor de coche” es la clave primaria. Ambas tablas pueden vi­n­cu­lar­se con “ide­n­ti­fi­ca­dor de coche” como clave externa en la tabla de empleados.

¿Qué tipos de comandos de SQL JOIN hay?

Existen distintos comandos JOIN según el uso que quieras darle. Echemos un vistazo a los pa­rá­me­tros básicos:

  • SELECT: Define columnas en las que se usa JOIN. Con un asterisco (*) se se­le­c­cio­na todo el conjunto de datos.
  • FROM: Define la tabla cuyos datos se van a fusionar con otra tabla.
  • Comando JOIN: Según el comando JOIN, crea una tabla de destino donde se vinculan, fusiona o compara los datos elegidos.
  • ON: Define bajo qué condición JOIN se deben combinar los datos re­cu­pe­ra­dos.

La sintaxis básica contiene prá­c­ti­ca­me­n­te los mismos pa­rá­me­tros, o similares, en la mayoría de comandos JOIN de SQL:

SELECT  columnaA,  columnaB, …
FROM  tablaA
Comando JOIN tablaB
ON  tablaA.columna  =  tablaB.columna
sql
Consejo

Si buscas una solución potente y segura para tu sistema de gestión de bases de datos, el hosting SQL server de IONOS es una opción excelente. Te ofrece hosting y se­r­vi­do­res adecuados a tus ne­ce­si­da­des según los es­tá­n­da­res de pro­te­c­ción de datos alemanes: se­r­vi­do­res cloud, VPS, se­r­vi­do­res dedicados o alo­ja­mie­n­to Linux con MSSQL, MySQL o MariaDB.

Se­r­vi­do­res virtuales (VPS)
VPS rentables en se­r­vi­do­res Dell En­te­r­pri­se
  • 1 Gb/s de ancho de banda y tráfico ilimitado
  • 99,99 % de tiempo de actividad y ce­r­ti­fi­ca­ción ISO
  • Soporte 24/7 ga­la­r­do­na­do y asesor personal

Estos son algunos de los comandos JOIN de SQL más im­po­r­ta­n­tes.

SQL INNER JOIN

Con este comando puedes fusionar los datos de dos tablas en una tabla meta cuando hay dos valores coin­ci­de­n­tes en una columna común. El comando INNER JOIN es el comando JOIN más utilizado y la co­n­fi­gu­ra­ción por defecto cuando no se utiliza un tipo concreto de JOIN.

Ejemplo práctico:

Se utiliza INNER JOIN con la tabla “Pedidos” con las columnas “Número de pedido, “ID cliente”, “ID producto” y “Fecha de pedido”, y con la tabla “Clientes” con las columnas “ID cliente”, “Nombre” y “Dirección”. La columna “ID cliente” sirve como clave primaria en “Clientes” y como clave externa en “Pedidos”. INNER JOIN combina todos los pedidos y datos de clientes en una tabla re­su­l­ta­n­te gracias a ID cliente.

El aspecto del comando de SQL INNER JOIN es el siguiente:

SELECT  pedidos.númerodepedido, clientes.nombre, pedidos.idproducto, pedidos.fechadepedido
FROM  pedidos
INNER JOIN  clientes
ON  pedidos.idcliente  =  clientes.idcliente
sql

OUTER JOIN

OUTER JOIN es un término genérico para los comandos SQL LEFT JOIN, RIGHT JOIN y FULL JOIN. A di­fe­re­n­cia de INNER JOIN, SQL OUTER JOIN no solo fusiona filas coin­ci­de­n­tes, sino también no coin­ci­de­n­tes con el valor NULL. Tras LEFT JOIN, OUTER JOIN y FULL JOIN en­co­n­tra­rás una ex­pli­ca­ción detallada.

SQL LEFT JOIN

El comando LEFT JOIN vincula todos los datos de una tabla a la izquierda con los datos coin­ci­de­n­tes de la tabla a la derecha. Cuando los datos no coinciden, el comando devuelve un valor NULL.

Ejemplo práctico:

SQL LEFT JOIN fusiona tanto conjuntos de datos coin­ci­de­n­tes como no coin­ci­de­n­tes de una tabla izquierda llamada “clientes” con una tabla derecha llamada “Coches”. A di­fe­re­n­cia de INNER JOIN el comando también muestra los datos no coin­ci­de­n­tes con el valor NULL.

El comando de SQL LEFT JOIN se compone así:

SELECT  *
FROM  clientes
INNER JOIN  coches
ON  clientes.cocheid  =  coche.cocheid
sql

SQL RIGHT JOIN

El comando de SQL RIGHT JOIN vincula datos de una tabla derecha con los datos coin­ci­de­n­tes de la tabla izquierda. Cuando no coinciden, aparece el valor NULL en las columnas de la tabla izquierda.

Ejemplo práctico:

SQL RIGHT JOIN añade todos los datos se­le­c­cio­na­dos de la tabla izquierda llamada “Pedidos” a los datos de una tabla derecha “Clientes” uti­li­za­n­do el ID del cliente. Si los datos no encajan, el comando devuelve un valor NULL, por ejemplo, cuando no existen pedidos ni nombre para un ID de cliente.

El comando SQL RIGHT JOIN se construye así:

SELECT  pedidos.númerodepedido, clientes.nombre, pedidos.idproducto, pedidos.fechapedido
FROM  clientes
RIGHT JOIN  pedidos
ON  pedidos.idcliente  =  clientes.idcliente
sql

SQL FULL JOIN

El comando FULL JOIN es una co­m­bi­na­ción de LEFT JOIN y RIGHT JOIN y se conoce también como FULL OUTER JOIN. El comando fusiona todos los conjuntos de datos y columnas de ambas tablas. Si no coinciden, el comando devuelve el valor NULL.

Ejemplo práctico:

El FULL JOIN combina todos los datos coin­ci­de­n­tes y no coin­ci­de­n­tes de una tabla derecha “Empleados” con una tabla izquierda “De­pa­r­ta­me­n­to” uti­li­za­n­do el ID de cliente. Si no se puede asignar ningún de­pa­r­ta­me­n­to, se introduce un valor NULL en el de­pa­r­ta­me­n­to.

El comando de SQL FULL JOIN se compone así:

SELECT  *
FROM  trabajadores
FULL JOIN  departamento
ON  trabajador.iddepartamento  =  departamento.iddepartamento
sql

CROSS JOIN

CROSS JOIN también se conoce como el JOIN ca­r­te­siano. Une todos los registros de datos de las tablas izquierda y derecha in­de­pe­n­die­n­te­me­n­te de las coin­ci­de­n­cias. Como devuelve todas las co­m­bi­na­cio­nes posibles, no necesita cláusula ON para que se dé una condición JOIN.

Ejemplo práctico:

CROSS JOIN fusiona todos los datos de la tabla derecha “Productos” con la tabla izquierda “Pedidos”.

En SQL CROSS JOIN se usa así:

SELECT  *
FROM  productos
CROSS JOIN  pedidos
sql

NATURAL JOIN

El comando NATURAL JOIN vincula todos los conjuntos de datos de dos tablas uti­li­za­n­do columnas comunes. Des­apa­re­ce el parámetro ON ya que no es necesario que los datos estén en una columna común.

Ejemplo práctico:

NATURAL JOIN fusiona las tablas “Equipo” y “De­pa­r­ta­me­n­to” uti­li­za­n­do una columna común. El comando entrega solo re­su­l­ta­dos cuando hay al menos una columna común.

NATURAL JOIN de SQL se ve así:

SELECT  *
FROM  pedidos
NATURAL JOIN  clientes
sql

SQL SELF JOIN

El comando de SQL SELF JOIN une una tabla a sí misma tra­tá­n­do­la como una tabla izquierda y derecha. Por lo tanto, puedes utilizar cualquier otro comando para una operación SELF JOIN. En la sintaxis, t1 y t2 son alias de las tablas izquierda y derecha ya que se trata de la misma tabla.

Sintaxis básica de un ejemplo LEFT JOIN:

SELECT  *
FROM  tablaA AS t1
LEFT JOIN  tablaA AS t2
ON  t1.nombrecolumna  =  t2.nombrecolumna
sql
Consejo

Echa un vistazo rápido a cómo se usa SQL con nuestra guía SQL con ejemplos.

Ir al menú principal