Comandos JOIN de SQL para informes y análisis de datos eficientes
Los comandos JOIN son algunos de los comandos de SQL más importantes para el análisis y la edición de bases de datos relacionales. Permiten consultar datos vinculados en múltiples tablas y fusionarlos en una tabla común. Según lo que se pretenda conseguir, pueden utilizarse 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 (directamente, on-premises o vía nube), el estándar es el lenguaje de programación y de bases de datos SQL. No solo permite crear bases de datos relacionales, también sirve para realizar consultas de datos mediante diversos comandos de SQL. En concreto, SQL JOINS es una de las categorías con los comandos más importantes y más utilizados.
JOINS dispone de comandos con los que puedes consultar, vincular y fusionar datos entre tablas de forma significativa. El único requisito es que haya un vínculo lógico entre las tablas. Este vínculo se establece mediante las correspondientes claves primarias y externas que pueden utilizarse para combinar datos con comandos JOIN.
Las claves primarias y externas crean valores de conocimiento importantes para SQL JOINS. Las claves primarias identifican claramente 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 “identificador de empleado” es la clave primaria. En una tabla sobre coches, el “identificador de coche” es la clave primaria. Ambas tablas pueden vincularse con “identificador 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 parámetros básicos:
- SELECT: Define columnas en las que se usa JOIN. Con un asterisco (*) se selecciona 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 recuperados.
La sintaxis básica contiene prácticamente los mismos parámetros, o similares, en la mayoría de comandos JOIN de SQL:
SELECT columnaA, columnaB, …
FROM tablaA
Comando JOIN tablaB
ON tablaA.columna = tablaB.columna
sqlSi 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 servidores adecuados a tus necesidades según los estándares de protección de datos alemanes: servidores cloud, VPS, servidores dedicados o alojamiento Linux con MSSQL, MySQL o MariaDB.
- Ancho de banda de hasta 1 Gb/s y tráfico ilimitado
- Almacenamiento SSD NVMe ultrarrápido
- Incluye: edición Plesk Web Host
Estos son algunos de los comandos JOIN de SQL más importantes.
SQL INNER JOIN
Con este comando puedes fusionar los datos de dos tablas en una tabla meta cuando hay dos valores coincidentes en una columna común. El comando INNER JOIN es el comando JOIN más utilizado y la configuració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 resultante 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
sqlOUTER JOIN
OUTER JOIN es un término genérico para los comandos SQL LEFT JOIN, RIGHT JOIN y FULL JOIN. A diferencia de INNER JOIN, SQL OUTER JOIN no solo fusiona filas coincidentes, sino también no coincidentes con el valor NULL. Tras LEFT JOIN, OUTER JOIN y FULL JOIN encontrarás una explicación detallada.
SQL LEFT JOIN
El comando LEFT JOIN vincula todos los datos de una tabla a la izquierda con los datos coincidentes 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 coincidentes como no coincidentes de una tabla izquierda llamada “clientes” con una tabla derecha llamada “Coches”. A diferencia de INNER JOIN el comando también muestra los datos no coincidentes con el valor NULL.
El comando de SQL LEFT JOIN se compone así:
SELECT *
FROM clientes
INNER JOIN coches
ON clientes.cocheid = coche.cocheid
sqlSQL RIGHT JOIN
El comando de SQL RIGHT JOIN vincula datos de una tabla derecha con los datos coincidentes 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 seleccionados de la tabla izquierda llamada “Pedidos” a los datos de una tabla derecha “Clientes” utilizando 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
sqlSQL FULL JOIN
El comando FULL JOIN es una combinació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 coincidentes y no coincidentes de una tabla derecha “Empleados” con una tabla izquierda “Departamento” utilizando el ID de cliente. Si no se puede asignar ningún departamento, se introduce un valor NULL en el departamento.
El comando de SQL FULL JOIN se compone así:
SELECT *
FROM trabajadores
FULL JOIN departamento
ON trabajador.iddepartamento = departamento.iddepartamento
sqlCROSS JOIN
CROSS JOIN también se conoce como el JOIN cartesiano. Une todos los registros de datos de las tablas izquierda y derecha independientemente de las coincidencias. Como devuelve todas las combinaciones 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
sqlNATURAL JOIN
El comando NATURAL JOIN vincula todos los conjuntos de datos de dos tablas utilizando columnas comunes. Desaparece 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 “Departamento” utilizando una columna común. El comando entrega solo resultados cuando hay al menos una columna común.
NATURAL JOIN de SQL se ve así:
SELECT *
FROM pedidos
NATURAL JOIN clientes
sqlSQL SELF JOIN
El comando de SQL SELF JOIN une una tabla a sí misma tratándola 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
sqlEcha un vistazo rápido a cómo se usa SQL con nuestra guía SQL con ejemplos.