SQL: LEFT JOIN 🔗

🔍 Cláusula LEFT JOIN

O LEFT JOIN é uma operação SQL usada para combinar registros de duas tabelas com base em colunas que possuem valores em comum. Essa operação retorna todos os registros da tabela à esquerda (tabela principal), junto com os registros correspondentes da tabela à direita. Se não houver correspondência na tabela à direita, os campos dessa tabela serão preenchidos com NULL.


 

🎯 Utilidade do LEFT JOIN

O LEFT JOIN é essencial quando se deseja garantir que todos os registros de uma tabela sejam exibidos, mesmo que não tenham correspondência em outra tabela. Ele é amplamente utilizado em relatórios ou análises onde informações parciais ainda são relevantes. Isso permite:

✅ Trazer informações adicionais de outras tabelas sem excluir registros da tabela principal. ✅ Garantir a integridade e a completude das informações. ✅ Realizar consultas analíticas mais abrangentes.


 

📌 Exemplo de Uso

Considere as tabelas D2D_Customers e D2D_Orders, que compartilham a coluna Customer_id. O seguinte LEFT JOIN trará todos os clientes, independentemente de terem pedidos ou não:

SELECT
 D1.Customer_id, D1.Customer_name, D2.Order_id, D2.Order_date
FROM
 D2D_Customers D1
  LEFT JOIN D2D_Orders D2
   ON D1.Customer_id= D2.Customer_id

➡️ Se um cliente não tiver um pedido correspondente na tabela D2D_Orders, os campos dessa tabela serão preenchidos com NULL.

Representação Gráfica 

 
 
 
 
 
D2D_Customers
D2D_Orders

 

📊 Eliminando Clientes Sem Pedidos

Para remover clientes que não realizaram pedidos, podemos adicionar a condição IS NOT NULL:

SELECT
 D1.Customer_id, D1.Customer_name, D2.Order_id, D2.Order_date
FROM
 D2D_Customers D1
  LEFT JOIN D2D_Orders D2
   ON D1.Customer_id= D2.Customer_id
WHERE
 D2.Customer_id IS NOT NULL

➡️ Isso garante que apenas os clientes com pelo menos um pedido sejam exibidos.

Representação Gráfica 

 
 
 
 
 
D2D_Customers
D2D_Orders

 

🔎 Encontrando Clientes Sem Pedidos

Para listar apenas os clientes que ainda não realizaram pedidos, utilizamos IS NULL:

SELECT
 D1.Customer_id, D1.Customer_name
FROM
 D2D_Customers D1
  LEFT JOIN D2D_Orders D2
   ON D1.Customer_id= D2.Customer_id
WHERE
 D2.Customer_id IS NULL

➡️ Assim, obtemos uma lista de clientes sem pedidos registrados.

Representação Gráfica 

 
 
 
 
 
D2D_Customers
D2D_Orders

 

📊 Resultados da Consulta

🟢 Caso 1: Correspondência Encontrada
Quando um cliente tem pelo menos um pedido, os dados das duas tabelas são combinados e exibidos normalmente.

🔴 Caso 2: Sem Correspondência
Se um cliente não tiver pedidos, ele ainda será retornado, mas os campos da tabela D2D_Orders serão NULL.


 

🔗 Relacionamentos 1:1 e 1:N no LEFT JOIN

📌 Relacionamento 1:1 (Um para Um)
Cada registro em D2D_Customers corresponde a, no máximo, um registro em D2D_Orders. O LEFT JOIN não resulta em duplicidade de registros.
📝 Exemplo: Um cliente tem apenas um pedido registrado.

📌 Relacionamento 1:N (Um para Muitos)
Cada registro em D2D_Customers pode estar associado a vários registros em D2D_Orders. Isso significa que a consulta pode gerar várias linhas para um mesmo cliente.
📝 Exemplo: Um cliente pode ter múltiplos pedidos, então cada pedido gera uma nova linha na consulta.


 

🏁 Conclusão

O LEFT JOIN é uma ferramenta poderosa para combinar dados de múltiplas tabelas enquanto preserva todos os registros da tabela principal. Ele é essencial para relatórios, análises de dados e manutenção da integridade das informações.

Garante que nenhum registro da tabela principal seja perdido.
Facilita a obtenção de dados mesmo em condições de falta de correspondência.
Possibilita diferentes formas de filtrar os resultados conforme a necessidade.

💡 Utilize o LEFT JOIN com sabedoria para obter insights mais completos sobre os seus dados!

 

Data de Publicação: 29-08-2024

Categoria: SQL