🔍 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
📊 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
🔎 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
📊 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!