
Imagine que você trabalha em um e-commerce e o gerente de estoque te faz a seguinte pergunta:
“Quais produtos estão cadastrados no sistema, mas nunca foram vendidos?”
Essa é uma dúvida comum — e extremamente útil para decisões de marketing, precificação e estoque. Neste artigo, você vai aprender como construir uma query SQL que responde exatamente isso, com base em um modelo de banco relacional simples e lógico.
1. Qual o Contexto do Problema?
Você tem, no mínimo, duas tabelas:
produto
→ onde estão todos os produtos cadastradospedido_detalhe
→ onde estão os itens que já foram vendidos, vinculados a pedidos
Seu objetivo é encontrar os produtos que não aparecem em nenhum pedido.
2. Como Resolver Esse Desafio com SQL?
Estratégia: LEFT JOIN
+ IS NULL
Vamos fazer um
LEFT JOIN
da tabelaproduto
com apedido_detalhe
, e depois filtrar os casos onde não houve correspondência.
3. A Query na Prática
SELECT P.NOME_PRODUTO
FROM produto P
LEFT JOIN pedido_detalhe PD
ON P.ID_PRODUTO = PD.ID_PRODUTO
WHERE PD.ID_PRODUTO IS NULL;
4. O Que Essa Query Faz?
- O
LEFT JOIN
traz todos os produtos, incluindo os que não têm correspondência empedido_detalhe
- A cláusula
WHERE PD.ID_PRODUTO IS NULL
filtra apenas os produtos que nunca foram vendidos
Resultado: a lista de produtos que estão no sistema, mas não constam em nenhuma venda.
5. Variações e Melhorias Possíveis
➕ Incluir mais colunas
SELECT P.ID_PRODUTO, P.NOME_PRODUTO, P.CATEGORIA
FROM produto P
LEFT JOIN pedido_detalhe PD ON P.ID_PRODUTO = PD.ID_PRODUTO
WHERE PD.ID_PRODUTO IS NULL;
➕ Contar quantos produtos estão nessa situação
SELECT COUNT(*) AS PRODUTOS_NUNCA_VENDIDOS
FROM produto P
LEFT JOIN pedido_detalhe PD ON P.ID_PRODUTO = PD.ID_PRODUTO
WHERE PD.ID_PRODUTO IS NULL;
6. Casos Reais de Uso Dessa Consulta
- Produtos esquecidos ou com erro de cadastro
- Produtos sem estoque vinculado
- Falhas de visibilidade ou promoção
- Otimização de catálogo
💡 Empresas usam esse tipo de consulta para decidir o que descontinuar, ofertar ou impulsionar.
Conclusão
Saber montar uma query para descobrir produtos nunca vendidos é um ótimo exemplo de como SQL serve para resolver problemas reais e estratégicos.
- Use
LEFT JOIN
para identificar ausências - Filtre com
IS NULL
para encontrar “invisíveis” no sistema - Aplique o raciocínio para outras áreas: campanhas sem retorno, clientes sem pedidos, etc.
📢 Já usou esse tipo de consulta no seu trabalho ou estudo? Pensou em outras situações parecidas? Compartilha aqui nos comentários! 📚 E se quiser aprender SQL de forma aplicada, com foco em raciocínio e desafios reais, conheça o curso SQL Simplificado — feito para te preparar para o que o mercado realmente pede.
Nos vemos no próximo artigo do Blog do SQL! 🚀
0 Comentários