Sou iniciante em SQL e estou com dificuldades em uma consulta que use COUNT.
Tenho duas tabelas,
Categoria:
E Sub_categoria
Percebe-se que a tabela sub_categoria possui uma chave estrangeira da tabela categoria, o registro id_categoria
O meu SQL irá contar quantas vezes os registros da tabela categoria aparecem na tabela sub_categoria, inclusive quando não aparecem (valor 0). Aí que está o problema, quando a tabela sub_categoria não possui referência da tabela categoria, o mesmo não é mostrado com valor 0.
Veja o meu resultado com a seguinte query:
SELECT categoria.id_categoria,
categoria.nome_categoria,
COUNT(sub_categoria.id_categoria) as num_subcategorias
FROM categoria, sub_categoria
WHERE categoria.id_categoria = sub_categoria.id_categoria
AND EXISTS (SELECT * FROM categoria)
GROUP BY categoria.id_categoria
Resultado:
Observe que a categoria Perfume não é mostrada pois a mesma não possui nenhuma referência na tabela sub_categoria. Quero que Perfume apareça com numero de sub_categoria igual a 0.
select categoria.id_categoria, categoria.nome_categoria, count(sub_categoria.id_categoria)
from categoria
left join sub_categoria on categoria.id_categoria = sub_categoria.id_categoria
group by categoria.id_categoria, categoria.nome_categoria;