如何关联两个SQL表统计分类对应的关联数据条数
SQL查询实现方案
实现思路
- 以
secondtable为基表使用左关联LEFT JOIN,保证所有分类都能完整保留在结果中 - 关联条件设置为
secondtable.id = firsttable.cat_id,建立分类表和业务数据表的关联关系 - 按
secondtable的id、name字段分组,统计每组关联到的firsttable数据条数即可
可直接运行的SQL语句
SELECT s.id AS `id(secondtable)`, s.name AS `name(secondtable)`, COUNT(f.id) AS `count(firsttable)` FROM secondtable s LEFT JOIN firsttable f ON s.id = f.cat_id GROUP BY s.id, s.name ORDER BY s.id ASC;
补充说明
这里使用COUNT(f.id)而非COUNT(*),是为了兼容某个分类下没有关联firsttable数据的场景,此时会正确返回统计值0,不会出现错误的统计结果1。
内容的提问来源于stack exchange,提问作者amir hodaee
相关产品推荐
相关产品推荐

