Counting all the posts belonging to a category AND its subcategories

后端 未结 2 1506
旧巷少年郎
旧巷少年郎 2021-01-07 04:38

I would really appreciate some help with my problem:

I have 2 MySQL tables, categories and posts, laid out (simplified) like so:

categories:

相关标签:
2条回答
  • 2021-01-07 04:46

    If the categories are not nested infinitely, you can JOIN them one level at a time. Here's an example for up to 3 levels of nesting:

    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
    
    0 讨论(0)
  • 2021-01-07 05:09

    I think you want to look at the Rollup operator. I believe this will get you what you want.

    http://msdn.microsoft.com/en-us/library/ms189305(SQL.90).aspx

    Randy

    0 讨论(0)
提交回复
热议问题