首页 > 解决方案 > 合并计数主题,评论和最后评论日期论坛sql

问题描述

我正在开发一个类似论坛的网站,我想将下一个信息放在 div 中

 Category: Cars
 Topics: 27  Comments:5436
 Last Comment: 01.04.2020 //php formated

这里我统计发帖数

   SELECT * 
   FROM posts as p
   WHERE p.category= :category 

   $sql->execute();

这里我统计评论数

   SELECT * 
   FROM comments as c
   LEFT JOIN posts as p ON c.id_post = p.id_post
   WHERE p.category= :category 

   $sql->execute();

在这里我找到最后评论日期

   SELECT max(c.date) as maxdate
   FROM comments as c
   LEFT JOIN posts as p ON c.id_post = p.id_post
   WHERE p.category= :category 
   GROUP BY c.id_comment

   $sql->execute();

我最大的问题是我应该如何将所有这三个 sql 语句和 3 个 pdo 执行合并到一个 sql 语句中(单个 pdo 执行)?

标签: phpsqljoingroup-by

解决方案


您可以加入和聚合。考虑:

select 
    p.category,
    count(distinct p.id_posts) no_posts,
    count(c.id_post)           no_comments,
    max(c.date)                date_last_comment
from posts p
left join comments c on c.id_post = p.id_post
where p.category= :category 
group by p.category

推荐阅读