Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zählen aller Beiträge, die zu einer Kategorie UND ihren Unterkategorien gehören

Wenn die Kategorien nicht unendlich verschachtelt sind, können Sie ihnen Ebene für Ebene beitreten. Hier ist ein Beispiel für bis zu 3 Verschachtelungsebenen:

SELECT c.name, COUNT(DISTINCT p.PID) as postCount 
FROM categories AS c 
LEFT JOIN categories AS c2
    ON c2.parent = c.catid
LEFT JOIN categories AS c3
    ON c3.parent = c2.catid
LEFT JOIN posts AS p 
    ON c.CATID = p.category
    OR c2.CATID = p.category
    OR c3.CATID = p.category
WHERE c.parent = '0' 
GROUP BY c.CATID, c.name
ORDER BY c.name ASC