Aprende tecnología paso a paso

¿Qué es un JOIN en SQL?

JOIN es una operación del lenguaje SQL que permite combinar información almacenada en dos o más tablas relacionadas dentro de una base de datos.

Gracias a los JOIN, es posible consultar datos distribuidos en diferentes tablas y presentarlos en un único resultado. Esta es una de las características más importantes de las bases de datos relacionales.

¿Para qué sirve un JOIN?

En una base de datos bien diseñada, la información suele estar dividida en varias tablas para evitar duplicidades y mejorar la organización de los datos.

Sin embargo, muchas veces es necesario consultar información que se encuentra repartida en diferentes tablas. Para resolver este problema se utilizan los JOIN.

Un JOIN permite relacionar registros utilizando columnas que tienen algún vínculo entre sí, generalmente mediante claves primarias y claves foráneas.

¿Cómo funciona un JOIN?

Un JOIN compara valores de una columna en una tabla con valores de una columna en otra tabla. Cuando encuentra coincidencias, combina la información y la muestra como un único conjunto de resultados.

La relación entre las tablas se establece mediante la cláusula ON.

Ejemplo práctico

Supongamos que tenemos una tabla de clientes y una tabla de pedidos.

Tabla clientes


id | nombre
--------------
1  | Juan
2  | María
3  | Carlos
    

Tabla pedidos


id | cliente_id | producto
---------------------------
1  | 1          | Laptop
2  | 1          | Mouse
3  | 2          | Teclado
    

La columna cliente_id de la tabla pedidos contiene el identificador del cliente que realizó cada compra.

Consulta utilizando JOIN

SELECT clientes.nombre,
       pedidos.producto
FROM clientes
JOIN pedidos
ON clientes.id = pedidos.cliente_id;

Resultado


nombre | producto
------------------
Juan   | Laptop
Juan   | Mouse
María  | Teclado
    

Como puede observarse, SQL combina la información de ambas tablas para mostrar el nombre del cliente junto con los productos comprados.

Tipos de JOIN más utilizados

SQL ofrece varios tipos de JOIN para diferentes necesidades.

INNER JOIN

Devuelve únicamente los registros que tienen coincidencias en ambas tablas.

SELECT *
FROM clientes
INNER JOIN pedidos
ON clientes.id = pedidos.cliente_id;

LEFT JOIN

Devuelve todos los registros de la tabla izquierda y las coincidencias de la tabla derecha.

SELECT *
FROM clientes
LEFT JOIN pedidos
ON clientes.id = pedidos.cliente_id;

RIGHT JOIN

Devuelve todos los registros de la tabla derecha y las coincidencias de la tabla izquierda.

SELECT *
FROM clientes
RIGHT JOIN pedidos
ON clientes.id = pedidos.cliente_id;

Ventajas de utilizar JOIN

¿Dónde se utilizan los JOIN?

Los JOIN se utilizan en prácticamente cualquier sistema que trabaje con bases de datos relacionales.

Algunos ejemplos son:

Errores comunes al utilizar JOIN

Artículos relacionados

Conclusión

JOIN es una de las herramientas más importantes del lenguaje SQL. Permite relacionar información almacenada en diferentes tablas y obtener resultados completos a partir de datos distribuidos. Aprender a utilizar correctamente los JOIN es fundamental para trabajar con bases de datos relacionales como MySQL, SQL Server, PostgreSQL y Oracle Database.