A cláusula OUTER JOIN no SQL é uma poderosa ferramenta usada para combinar dados de duas tabelas, permitindo que você traga todos os registros de ambas as tabelas — mesmo que não haja correspondência entre elas. Com o OUTER JOIN, você garante que nenhum dado seja excluído da consulta, trazendo informações completas de suas tabelas.
1. O que é a cláusula OUTER JOIN?
O OUTER JOIN é um tipo de JOIN que retorna registros de uma ou ambas as tabelas, mesmo que não haja correspondência entre elas. Dependendo do tipo de OUTER JOIN usado, você pode trazer registros de uma tabela (LEFT ou RIGHT) ou de ambas as tabelas (FULL).
Tipos de OUTER JOIN:
- LEFT OUTER JOIN: Retorna todos os registros da tabela à esquerda, mesmo que não haja correspondência na tabela à direita;
- RIGHT OUTER JOIN: Retorna todos os registros da tabela à direita, mesmo que não haja correspondência na tabela à esquerda;
- FULL OUTER JOIN: Retorna todos os registros de ambas as tabelas, com correspondência ou não.
2. Exemplo de LEFT OUTER JOIN
Com o LEFT OUTER JOIN, você obtém todos os registros da tabela à esquerda, além dos dados correspondentes da tabela à direita (ou NULL, se não houver correspondência).
Sintaxe básica:
SELECT coluna1, coluna2
FROM tabela1
LEFT OUTER JOIN tabela2
ON tabela1.coluna_comum = tabela2.coluna_comum;
Exemplo prático:
SELECT clientes.nome, pedidos.numero_pedido
FROM clientes
LEFT OUTER JOIN pedidos
ON clientes.id = pedidos.cliente_id;
Neste caso, todos os clientes serão retornados, mesmo que não tenham feito pedidos. Se não houver pedido, a coluna numero_pedido
mostrará NULL.
3. Exemplo de RIGHT OUTER JOIN
O RIGHT OUTER JOIN faz o oposto: retorna todos os registros da tabela à direita, mesmo que não haja correspondência na tabela à esquerda.
SELECT coluna1, coluna2
FROM tabela1
RIGHT OUTER JOIN tabela2
ON tabela1.coluna_comum = tabela2.coluna_comum;
Exemplo prático:
SELECT pedidos.numero_pedido, clientes.nome
FROM pedidos
RIGHT OUTER JOIN clientes
ON pedidos.cliente_id = clientes.id;
Neste caso, todos os pedidos serão listados, mas se algum pedido não tiver cliente correspondente, o nome do cliente aparecerá como NULL.
4. Exemplo de FULL OUTER JOIN
O FULL OUTER JOIN traz todos os registros de ambas as tabelas, com ou sem correspondência. Se um registro de uma tabela não tiver correspondência na outra, os valores não correspondentes serão NULL.
Sintaxe básica:
SELECT coluna1, coluna2
FROM tabela1
FULL OUTER JOIN tabela2
ON tabela1.coluna_comum = tabela2.coluna_comum;
Exemplo prático:
SELECT clientes.nome, pedidos.numero_pedido
FROM clientes
FULL OUTER JOIN pedidos
ON clientes.id = pedidos.cliente_id;
Com o FULL OUTER JOIN, você obtém todos os clientes e todos os pedidos, independentemente de haver correspondência. Se um cliente não tiver pedido, o campo numero_pedido
será NULL, e se houver um pedido sem cliente associado, o campo nome
será NULL.
5. Diferença entre LEFT, RIGHT e FULL OUTER JOIN
- LEFT OUTER JOIN: Retorna todos os registros da tabela à esquerda, com correspondências (ou NULL) da tabela à direita;
- RIGHT OUTER JOIN: Retorna todos os registros da tabela à direita, com correspondências (ou NULL) da tabela à esquerda;
- FULL OUTER JOIN: Retorna todos os registros de ambas as tabelas, com correspondências ou NULL onde não houver.
Resumo
- LEFT OUTER JOIN: Traz todos os registros da tabela à esquerda, mesmo sem correspondência;
- RIGHT OUTER JOIN: Traz todos os registros da tabela à direita, mesmo sem correspondência;
- FULL OUTER JOIN: Traz todos os registros de ambas as tabelas, com ou sem correspondência.
Com o OUTER JOIN, você tem flexibilidade total para combinar dados, garantindo que nenhuma informação fique de fora — ideal para relatórios e análises completas!
Domine os principais comandos, Operadores, Manipulação de dados, Funções, Drop e Uploads, Query, SubQuerys, Views, Segurança e muito mais!
O acesso ao nosso curso é vitalício e com suporte exclusivo.
CLIQUE NA IMAGEM ABAIXO PARA MAIS DETALHES:
Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits
Quer receber GRÁTIS o e-book "Como Formatar um Computador em 5 Minutos"?
Sobre o Autor
0 Comentários