MariaDB JOIN: Combinar registros de diferentes tabelas

Em um sistema de gerenciamento de banco de dados relacional, os registros de tabelas podem ser comparados. Isso permite estabelecer conexões e extrair valores correspondentes de duas tabelas ou mais tabelas. No MariaDB, o JOIN realiza essa tarefa. Ele é aplicado em combinação com o SELECT e pode ser usado de diferentes maneiras, como INNER JOIN, LEFT OUTER JOIN e RIGHT OUTER JOIN.

Sintaxe e Funcionamento do MariaDB JOIN

Para que você tenha uma visão geral dos diferentes MariaDB JOIN, mostramos primeiro a sintaxe básica do comando. O INNER JOIN apresenta a seguinte sintaxe:

SELECT coluna(s)
FROM tabela_1
INNER JOIN tabela_2
ON tabela_1.coluna = tabela_2.coluna;
sql

Com o SELECT, você seleciona a coluna (ou colunas) que você deseja visualizar. Em vez de “tabela_1”, você insere a primeira tabela e, em vez de “tabela_2”, a segunda tabela, que você deseja combinar com a primeira. O INNER JOIN compara todas as linhas da primeira tabela com todas as linhas da segunda tabela. Os registros que correspondem (ou seja, estão presentes em ambas as tabelas) são então exibidos juntos em uma tabela de resultados. Registros que não se combinam entre as tabelas não serão considerados.

Exemplo do MariaDB INNER JOIN

Para ilustrar como o INNER JOIN funciona no MariaDB, escolhemos um exemplo simples. Vamos supor que, em um banco de dados, existem duas tabelas. A primeira tabela se chama “Clientes” e a segunda “Pedidos”. Criamos a tabela “Clientes” com MariaDB CREATE TABLE. Ela contém as colunas “ID_Cliente”, “Sobrenome”, “Nome”, “Cidade” e “Data_Cadastro”. O código é o seguinte:

CREATE TABLE Clientes (
ID_Cliente INT PRIMARY KEY,
Sobrenome VARCHAR(50),
Nome VARCHAR(50),
Cidade VARCHAR(50),
Data_Cadastro DATE
);
sql

Agora, vamos inserir alguns registros na tabela usando o comando INSERT INTO:

INSERT INTO Clientes VALUES
(1, 'Silva', 'João', 'São Paulo', '2022-07-19'),
(2, 'Santos', 'Maria', 'Rio de Janeiro', '2023-03-03'),
(3, 'Oliveira', 'Pedro', 'Rio de Janeiro', '2023-07-09'),
(4, 'Souza', 'Ana', 'Curitiba', '2023-12-10'),
(5, 'Costa', 'Luiz', 'São Paulo', '2024-01-17');
sql

Em seguida, criamos a tabela “Pedidos”. Ela contém as colunas “ID_Pedido”, “ID_Produto”, “Nome_Cliente” e “Data_Pedido”. O código é o seguinte:

CREATE TABLE Pedidos (
ID_Pedido INT AUTO_INCREMENT PRIMARY KEY,
ID_Produto INT,
Sobrenome_Cliente VARCHAR(50),
Data_Pedido DATE
);
sql

Vamos preencher essa tabela com alguns valores de exemplo:

INSERT INTO Pedidos VALUES
(101, 247, 'Moura', '2024-02-20'),
(102, 332, 'Oliveira', '2024-03-03'),
(103, 247, 'Gomes', '2024-03-09'),
(104, 191, 'Santos', '2024-03-17'),
(105, 499, 'Ferreira', '2024-03-17');
sql

Utilizamos, no MariaDB, o INNER JOIN para filtrar os clientes que aparecem na tabela “Clientes” e que fizeram um pedido listado na tabela “Pedidos”. O código correspondente é:

SELECT Clientes.ID_Cliente, Clientes.Sobrenome, Pedidos.ID_Pedido, Pedidos.ID_Produto
FROM Clientes
INNER JOIN Pedidos
ON Clientes.Sobrenome = Pedidos.Sobrenome_Cliente;
sql

Aqui, focamos no sobrenome da tabela Clientes e no sobrenome do cliente na tabela Pedidos. Se esses valores coincidirem, eles são incluídos no resultado. Como os clientes Oliveira e Santos aparecem em ambas as tabelas, a saída correspondente seria:

ID_Cliente Sobrenome ID_Pedido ID_Produto
3 Oliveira 102 332
2 Santos 104 191

LEFT OUTER JOIN

Outro tipo de comando MariaDB JOIN é o LEFT OUTER JOIN. Esse funciona de maneira semelhante e utiliza uma sintaxe quase idêntica. No entanto, ao contrário do INNER JOIN, todos os registros da primeira tabela (no exemplo, “Clientes”) são exibidos e apenas os registros correspondentes da segunda tabela (“Pedidos”). Se não houver correspondência na segunda tabela, o valor correspondente será indicado como NULL. Para o nosso exemplo acima, o comando ficaria assim:

SELECT Clientes.Sobrenome, Pedidos.ID_Produto
FROM Clientes
LEFT OUTER JOIN Pedidos
ON Clientes.Sobrenome = Pedidos.Sobrenome_Cliente;
sql

Com isso, obtemos o seguinte resultado:

Sobrenome ID_Produto
Silva NULL
Santos 191
Oliveira 332
Souza NULL
Costa NULL

RIGHT OUTER JOIN

O RIGHT OUTER JOIN no MariaDB funciona de maneira oposta. Neste caso, todos os registros da segunda tabela são mantidos e combinados com os valores correspondentes da primeira tabela. Se não houver correspondência, o valor será NULL. Aqui está o código:

SELECT Clientes.Sobrenome, Pedidos.ID_Produto
FROM Clientes
RIGHT OUTER JOIN Pedidos
ON Clientes.Sobrenome = Pedidos.Sobrenome_Cliente;
sql

A saída seria:

Sobrenome ID_Produto
NULL 247
Oliveira 332
NULL 247
Santos 191
NULL 499
Dica

No nosso Digital Guide, você encontrará muitas orientações e explicações úteis sobre o MariaDB. Por exemplo, uma comparação entre MariaDB e MySQL e tudo sobre a instalação do MariaDB. Além disso, você também pode aprender como resetar a senha root no MariaDB.

Este artigo foi útil?
Para melhorar a sua experiência, este site usa cookies. Ao acessar o nosso site, você concorda com nosso uso de cookies. Mais informações
Page top