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.

Agora responda o exercício sobre o conteúdo:

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

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Próxima página do Ebook Gratuito:

17Subqueries no MySQL

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto