Unindo tabelas com JOIN

Página 16

O MySQL é um dos sistemas de gerenciamento de banco de dados mais populares do mundo, e um dos conceitos mais importantes para entender quando se trabalha com ele é como unir tabelas usando o comando JOIN. Este é um comando SQL que é usado para combinar linhas de duas ou mais tabelas, com base em uma coluna relacionada entre elas.

Existem vários tipos de JOINs disponíveis no MySQL: INNER JOIN, LEFT JOIN, RIGHT JOIN e FULL JOIN. Cada um deles tem um propósito específico e é usado em diferentes cenários. Vamos explorar cada um deles em detalhes.

INNER JOIN

O INNER JOIN é o tipo de JOIN mais comum. Ele retorna as linhas quando há uma correspondência em ambas as tabelas. Se não houver correspondência, a linha não será retornada.

Por exemplo, se tivermos duas tabelas, 'Clientes' e 'Pedidos', e queremos encontrar todos os clientes que fizeram um pedido, poderíamos usar o INNER JOIN para unir as duas tabelas com base no ID do cliente. A sintaxe seria algo assim:

SELECT Clientes.Nome, Pedidos.Produto
FROM Clientes
INNER JOIN Pedidos
ON Clientes.ID = Pedidos.ID_Cliente;

Este comando retornaria uma tabela com os nomes dos clientes e os produtos que eles pediram. Se um cliente não fez um pedido, ele não apareceria na tabela resultante.

LEFT JOIN

O LEFT JOIN retorna todas as linhas da tabela à esquerda, e as linhas correspondentes da tabela à direita. Se não houver correspondência, o resultado é NULL do lado direito.

Usando o mesmo exemplo, se quiséssemos encontrar todos os clientes, independentemente de terem feito um pedido ou não, poderíamos usar o LEFT JOIN. A sintaxe seria algo assim:

SELECT Clientes.Nome, Pedidos.Produto
FROM Clientes
LEFT JOIN Pedidos
ON Clientes.ID = Pedidos.ID_Cliente;

Este comando retornaria uma tabela com os nomes de todos os clientes. Se um cliente fez um pedido, o produto que eles pediram seria listado. Se eles não fizeram um pedido, haveria um NULL na coluna do produto.

RIGHT JOIN

O RIGHT JOIN é o oposto do LEFT JOIN. Ele retorna todas as linhas da tabela à direita, e as linhas correspondentes da tabela à esquerda. Se não houver correspondência, o resultado é NULL do lado esquerdo.

Usando o mesmo exemplo, se quiséssemos encontrar todos os pedidos, independentemente de terem sido feitos por um cliente ou não, poderíamos usar o RIGHT JOIN. A sintaxe seria algo assim:

SELECT Clientes.Nome, Pedidos.Produto
FROM Clientes
RIGHT JOIN Pedidos
ON Clientes.ID = Pedidos.ID_Cliente;

Este comando retornaria uma tabela com todos os produtos que foram pedidos. Se um pedido foi feito por um cliente, o nome do cliente seria listado. Se o pedido não foi feito por um cliente, haveria um NULL na coluna do nome do cliente.

FULL JOIN

O FULL JOIN retorna as linhas quando há uma correspondência em uma das tabelas. Portanto, se houver uma linha na primeira tabela que não tenha nenhuma linha correspondente na segunda tabela, ou uma linha na segunda tabela que não tenha nenhuma linha correspondente na primeira tabela, essa linha será listada.

Infelizmente, o MySQL não suporta o FULL JOIN diretamente, mas você pode alcançar o mesmo resultado usando uma combinação de LEFT JOIN e UNION.

SELECT Clientes.Nome, Pedidos.Produto
FROM Clientes
LEFT JOIN Pedidos
ON Clientes.ID = Pedidos.ID_Cliente
UNION
SELECT Clientes.Nome, Pedidos.Produto
FROM Clientes
RIGHT JOIN Pedidos
ON Clientes.ID = Pedidos.ID_Cliente;

Este comando retornaria uma tabela com todos os clientes e todos os pedidos. Se um cliente não fez um pedido, haveria um NULL na coluna do produto. Se um pedido não foi feito por um cliente, haveria um NULL na coluna do nome do cliente.

Em resumo, o comando JOIN é uma ferramenta poderosa no MySQL que permite unir duas ou mais tabelas com base em uma coluna relacionada entre elas. Compreender como usar os diferentes tipos de JOINs pode ajudá-lo a extrair informações valiosas de seus dados de maneira eficiente.

Now answer the exercise about the content:

Qual é a diferença entre INNER JOIN e LEFT JOIN no MySQL?

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

17Subqueries no MySQL

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text