title: Is there a simpler way to write this query?
body: <p>I have three tables. Categories, topics, and posts. Each topic has a foreign key that references the category that it's under. Each post has a foreign key that references the topic that it's under.</p>
  
  <p>The purpose of this query is to basically be the front page query.  I want each category along with the number of topics and number of posts in each category.  This is the query I have, and it works.  Is this the simplest way of going about it? </p>
  
  <pre><code>SELECT      c.*,
              COUNT(t.idCategory) AS tCount,
              p.pCount
  FROM        categories AS c
    LEFT JOIN topics AS t
    ON        c.id = t.idCategory
    LEFT JOIN (SELECT      t.idCategory,
                           COUNT(p2.idTopic) AS pCount
               FROM        topics AS t
                 LEFT JOIN posts AS p2
                 ON        t.id = p2.idTopic
               GROUP BY    t.idCategory) AS p
    ON         c.id = p.idCategory
  GROUP BY     t.idCategory
  ORDER BY     c.id
  </code></pre>
  
  <p>Thanks!</p>