选择所有带有COUNT个子类别的类别

哈米德·卡玛拉

我需要选择所有类别及其子类别数。

假设这是我的表格:

类别

id | title
----------
1  | colors
2  | animals
3  | plants

子类别

id | category_id | title | confirmed
------------------------------------
1        1          red       1
2        1          blue      1
3        1          pink      1
4        2          cat       1
5        2          tiger     0
6        2          lion      0

我想要的是:

id |  title  | count
------------------
1    colors     3
2    animals    1
3    plants     0

到目前为止我尝试过的是:

SELECT c.id, c.title, count(s.category_id) as count from categories c
LEFT JOIN sub_categories s on c.id = s.category_id
WHERE c.confirmed = 't' AND s.confirmed='t'
GROUP BY c.id, c.title
ORDER BY count DESC

此查询的唯一问题是此查询不显示具有0个子类别的类别!

您也可以在SqlFiddle检查

任何帮助将不胜感激。

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

您没有获得计数为零的行的原因是该WHERE子句检查s.confirmedt,因此NULL从外部联接结果中消除了带有s的

s.confirmed检查移到联接表达式中可解决此问题:

SELECT c.id, c.title, count(s.category_id) as count from categories c
LEFT JOIN sub_categories s on c.id = s.category_id AND s.confirmed='t'
WHERE c.confirmed = 't' 
GROUP BY c.id, c.title
ORDER BY count DESC

添加Sql Fiddle:http ://sqlfiddle.com/#!17/83add/13

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

带有子类别的Django类别

表中带有子类别的类别-PHP + MYSQL

带有类别和子类别的下拉列表

Mediawiki API:如何列出类别的所有子类别?

列出一个类别的所有子类别

选择特定类别的所有帖子

带有子类别的Joomla Web链接未显示

创建带有子类别的堆叠图

带有子类别的列表的ArrayList方法

在链接的相关下拉组合框选择中清除所选(子)类别的所有子类别

如何显示所有子类别的文章?

获取所有孩子类别的父母

jQuery显示具有特定类别的部分,并带有相同类别或子类别的按钮

选择每个类别的所有项目,但仅选择每个类别的最新日期

选择具有多个类别的所有记录

带有类别和子类别的下拉菜单无法正常工作

WooCommerce.NET 添加带有类别/子类别的产品

sql + php显示带有无限子类别的类别

如何在Yii2中显示带有子类别的类别

mysql 中带有类别和子类别的减法数据是否可行?

BeautifulSoup 4:选择带有至少一个带有特定类别的子p标签的所有div

(Laravel雄辩)获取类别的职位和所有嵌套子类别

来自父类别和所有子类别的SQL Server计数记录

对给定顶级类别的所有子类别禁用特定的WooCommerce付款方式

SQL从指定类别和所有子类别中选择所有产品

SQL获取所有类别和所有子类别

将所有类别的所有列表划分为子类别?(仅适用于Java)

获取基于特定类别的所有标签(包括子类别和帖子中的所有标签)

如何从子类别的所有页面中获取所有产品(Python,亚马逊)