多对多表结构下按类型统计启用帖子数的count查询SQL实现
可直接运行的SQL查询语句
以下语句兼容MySQL、PostgreSQL、SQL Server等主流数据库,会返回全部分类维度的统计结果,无关联启用帖子的分类会显示计数为0,不会遗漏分类项:
SELECT t.id AS type_id, t.name AS type_name, COUNT(p.id) AS enable_post_total FROM Type t LEFT JOIN PostType pt ON t.id = pt.ProjectTypeID LEFT JOIN Posts p ON pt.PostID = p.id AND p.status = 'enable' GROUP BY t.id, t.name;
常见错误避坑:不要把
p.status = 'enable'条件写到WHERE子句中,也不要用INNER JOIN做关联,否则会把没有关联启用帖子的分类从结果里过滤掉,无法覆盖全部分类维度。
内容的提问来源于stack exchange,提问作者mr x
相关产品推荐
相关产品推荐

