J'ai une requête répertoriant les catégories de produits, par supercatégorie> catégorie. La requête compte le nombre de produits dans chaque catégorie (COUNT(ptc.catid))
.SQL: COUNT() avec des éléments apparaissant plusieurs fois dans une relation un-à-plusieurs? Alternative à GROUP BY?
Cependant, la requête ne laisse pas apparaître une catégorie deux fois (une catégorie peut être liée à plusieurs supercatégories). Comment cela peut-il être réécrit afin que les catégories (c.title) puissent être listées sous plusieurs supercatégories?
SELECT
s.supercategory_id,
s.title,
c.title,
c.id,
COUNT(ptc.catid)
FROM supercategories s,
supercategories_to_categories stc,
categories c,
products p,
products_categories ptc
WHERE c.viewable='1'
AND c.id=stc.category_id
AND stc.supercategory_id=s.supercategory_id
AND ptc.catid=c.id
AND ptc.productid = p.id
AND p.viewable='y'
GROUP BY ptc.catid
ORDER BY s.title, c.title
Merci!
à première vue, la requête ne semble pas avoir raison. toutes les colonnes de non-agrégation doivent être sous GROUP BY. –