En un sistema de gestión de bases de datos re­la­cio­na­les, puedes comparar conjuntos de datos de distintas tablas, lo que te permite enlazar y encontrar los valores que coinciden en ambas tablas con la cláusula JOIN de MariaDB. Esta cláusula se utiliza en co­m­bi­na­ción con SELECT y se puede dividir en di­fe­re­n­tes ca­te­go­rías, como INNER JOIN, LEFT OUTER JOIN y RIGHT OUTER JOIN, que te mostramos en detalle.

Sintaxis y fu­n­cio­na­mie­n­to

Para darte una visión general de las di­fe­re­n­tes cláusulas JOIN en MariaDB, te mostramos primero la sintaxis básica. INNER JOIN tiene el siguiente aspecto:

SELECT columna(s)
FROM tabla_1
INNER JOIN tabla_2
ON tabla_1.columna = tabla_2.columna;
sql

Utiliza SELECT para se­le­c­cio­nar la columna (o columnas) con la(s) que quieres trabajar. Reemplaza el marcador de posición “tabla_1” con tu primera tabla y “tabla_2” con la segunda tabla que quieres combinar. INNER JOIN te permite comparar todas las filas de la primera tabla con todas las filas de la segunda tabla. Los re­su­l­ta­dos que coinciden (es decir, que están presentes en ambas tablas) se muestran juntos en una tabla de re­su­l­ta­dos. Las entradas que no coinciden no se tienen en cuenta.

Bases de datos ge­s­tio­na­das
Bases de datos seguras y fáciles de usar
  • Ar­qui­te­c­tu­ra de primera ge­s­tio­na­da por expertos
  • So­lu­cio­nes flexibles adaptadas a tus ne­ce­si­da­des
  • Seguridad máxima en centros de datos con ce­r­ti­fi­ca­ción ISO

Ejemplo de INNER JOIN en MariaDB

Aquí tienes un ejemplo sencillo para que veas cómo funciona INNER JOIN en MariaDB. Ne­ce­si­ta­mos un base de datos con dos tablas; la primera tabla la lla­ma­re­mos “Lista de clientes” y la segunda “Pedidos”. Primero, creamos la tabla “Lista_de_clientes” con MariaDB CREATE TABLE. Contiene las columnas “Numero_de_cliente”, “Apellido”, “Nombre”, “Ciudad” y “Fecha_de_creacion”. El código es el siguiente:

CREATE TABLE Lista_de_clientes (
	Numero_de_cliente INT PRIMARY KEY,
	Apellido VARCHAR(50),
	Nombre VARCHAR(50),
	Ciudad VARCHAR(50),
	Fecha_de_creacion DATE
);
sql

Re­lle­na­mos la tabla con algunos valores uti­li­za­n­do INSERT INTO:

INSERT INTO Lista_de_clientes VALUES
(1, 'Smith', 'Martina', 'Los Ángeles', '2022-07-19'),
(2, 'Rodman', 'Daniel', 'Atlanta', '2023-03-03'),
(3, 'López', 'Pedro', 'Chicago', '2023-07-09'),
(4, 'García', 'Laura', 'Phoenix', '2023-12-10'),
(5, 'Davis', 'Lisa', 'Baltimore', '2024-01-17');
sql

Luego, creamos la tabla “Pedidos”, que contiene las columnas “Numero_de_pedido”, “Numero_de_articulo”, “Nombre_de_cliente” y “Fecha_de_pedido”. El código es el siguiente:

CREATE TABLE Pedidos (
	Numero_de_pedido INT AUTO_INCREMENT PRIMARY KEY,
	Numero_de_articulo INT,
	Nombre_de_cliente VARCHAR(50),
	Fecha_de_pedido DATE
);
sql

También co­m­ple­ta­mos dicha tabla con valores de ejemplo:

INSERT INTO Pedidos VALUES
(101, 247, 'Jackson', '2024-02-20'),
(102, 332, 'López', '2024-03-03'),
(103, 247, 'Anderson', '2024-03-09'),
(104, 191, 'Rodman', '2024-03-17'),
(105, 499, 'Martínez', '2024-03-17');
sql

Ahora uti­li­za­mos INNER JOIN de MariaDB para filtrar por aquellos clientes que aparecen en la tabla “Lista_de_clientes” y han realizado un pedido, es decir, aparecen en la tabla “Pedidos”:

SELECT Lista_de_clientes.Numero_de_cliente, Lista_de_clientes.Apellido, Pedidos.Numero_de_pedido, Pedidos.Numero_de_articulo
FROM Lista_de_clientes
INNER JOIN Pedidos
ON Lista_de_clientes.Apellido = Pedidos.Nombre_de_cliente;
sql

El sistema revisa la columna “Apellido” de la tabla “Lista_de_clientes” y la columna “Nombre_de_cliente” de la tabla “Pedidos”. Si ambos valores coinciden, se incluyen en la respuesta. Como los clientes López y Rodman aparecen en ambas tablas, se emite el siguiente resultado:

Numero_de_cliente Apellido Numero_de_pedido Numero_de_articulo
3 López 102 332
2 Rodman 104 191

LEFT OUTER JOIN

El LEFT OUTER JOIN en MariaDB funciona de forma similar y utiliza una sintaxis casi idéntica. Sin embargo, a di­fe­re­n­cia de INNER JOIN, en el caso de LEFT OUTER JOIN se muestran todos los conjuntos de datos de la primera tabla o tabla izquierda (en nuestro ejemplo, la tabla “Lista_de_clientes”) y solo los conjuntos de datos que coincidan de la segunda tabla o tabla derecha (en nuestro ejemplo, la tabla “Pedidos”). Si el valor de la segunda tabla no coincide, aparece NULL en la celda co­rre­s­po­n­die­n­te. Siguiendo el ejemplo anterior, el comando sería el siguiente:

SELECT Lista_de_clientes.Apellido, Pedidos.Numero_de_articulo
FROM Lista_de_clientes
LEFT OUTER JOIN Pedidos
ON Lista_de_clientes.Apellido = Pedidos.Nombre_de_cliente;
sql

Se obtiene el siguiente resultado:

Apellido Numero_de_articulo
Smith NULL
Rodman 191
López 332
García NULL
Davis NULL

RIGHT OUTER JOIN

En MariaDB, RIGHT OUTER JOIN funciona exac­ta­me­n­te al revés. Los datos de la segunda tabla o tabla derecha se combinan con los valores que coincidan de la primera tabla o tabla izquierda. Si no coinciden, al igual que con LEFT OUTER JOIN, aparece el valor NULL en la celda co­rre­s­po­n­die­n­te. Aquí tienes el código:

SELECT Lista_de_clientes.Apellido, Pedidos.Numero_de_articulo
FROM Lista_de_clientes
RIGHT OUTER JOIN Pedidos
ON Lista_de_clientes.Apellido = Pedidos.Nombre_de_cliente;
sql

Se obtiene el siguiente resultado:

Nombre_de_cliente Numero_de_articulo
NULL 247
López 332
NULL 247
Rodman 191
NULL 499
Consejo

En nuestra Digital Guide en­co­n­tra­rás muchas in­s­tru­c­cio­nes y ex­pli­ca­cio­nes útiles sobre MariaDB. Por ejemplo, en­co­n­tra­rás una co­m­pa­ra­ción entre MariaDB y MySQL y todo lo que necesitas saber sobre cómo instalar MariaDB.

Ir al menú principal