⬅️ LEFT JOIN no SQL

Introdução

O comando LEFT JOIN é utilizado para retornar todos os registros da tabela que está à esquerda da consulta, mesmo quando não existe correspondência na tabela da direita.

Ele é muito utilizado quando precisamos identificar registros que possuem ou não relacionamento.

📌 LEFT JOIN mantém todos os registros da primeira tabela e adiciona informações da segunda quando existir correspondência.

Como funciona?

No LEFT JOIN, a tabela escrita após o FROM é a tabela principal.


FROM clientes

LEFT JOIN pedidos
          

Todos os clientes serão exibidos, mesmo aqueles sem pedidos.

Sintaxe Básica


SELECT

tabela1.coluna,

tabela2.coluna


FROM tabela1


LEFT JOIN tabela2

ON tabela1.id = tabela2.id;
          

Exemplo de Tabelas


CLIENTES

+----+----------+

| ID | Nome     |

+----+----------+

| 1  | Ana      |

| 2  | Carlos   |

| 3  | Pedro    |

+----+----------+



PEDIDOS

+----+------------+-------+

| ID | Cliente_ID | Valor |

+----+------------+-------+

| 1  | 1          | 500   |

| 2  | 2          | 700   |

+----+------------+-------+
          

Utilizando LEFT JOIN


SELECT

clientes.nome,

pedidos.valor


FROM clientes


LEFT JOIN pedidos

ON clientes.id = pedidos.cliente_id;
          

Resultado:


Ana      | 500

Carlos   | 700

Pedro    | NULL
          

Pedro aparece mesmo sem possuir pedido cadastrado.

Identificando Registros sem Relacionamento

Podemos utilizar LEFT JOIN junto com WHERE para encontrar registros sem correspondência.


SELECT

clientes.nome


FROM clientes


LEFT JOIN pedidos

ON clientes.id = pedidos.cliente_id


WHERE pedidos.id IS NULL;
          

Retorna clientes que nunca realizaram pedidos.

LEFT JOIN com Alias


SELECT

c.nome,

p.valor


FROM clientes c


LEFT JOIN pedidos p

ON c.id = p.cliente_id;
          

LEFT JOIN x INNER JOIN

LEFT JOIN INNER JOIN
Mantém todos da esquerda Somente correspondências
Pode retornar NULL Não retorna NULL
Útil para encontrar ausências Útil para dados relacionados

Exemplo com Três Tabelas


SELECT

c.nome,

p.valor,

pr.nome


FROM clientes c


LEFT JOIN pedidos p

ON c.id = p.cliente_id


LEFT JOIN produtos pr

ON p.produto_id = pr.id;
          

Aplicações no Mundo Real

Sistema Utilização
E-commerce Clientes sem compras
Banco Contas sem movimentação
Escola Alunos sem matrícula
RH Funcionários sem registros

Erros Comuns

Erro Problema
Trocar ordem das tabelas Resultado diferente
Usar WHERE incorretamente Elimina registros NULL
Relacionamento errado Dados inconsistentes
Falta de índice Consulta lenta

Boas Práticas

Resumo da Aula

🎓 Aula concluída! Agora você sabe utilizar LEFT JOIN para consultar dados mantendo todos os registros da tabela principal.