如何获得一个类别的子集数量?
Posted
技术标签:
【中文标题】如何获得一个类别的子集数量?【英文标题】:How I can get the number of subsets of a category? 【发布时间】:2021-01-31 08:48:30 【问题描述】:我的产品有一个类别表,名为:TBL_Category
表结构如下:
nid 是身份密钥
nid | pid | name |
---|---|---|
1 | 1 | mobile |
2 | 2 | tablet |
3 | 1 | apple |
4 | 1 | samsung |
5 | 3 | iphone 11 |
6 | 3 | iphone 12 |
7 | 4 | Galaxy S |
8 | 4 | Galaxy Note |
9 | 5 | 11 pro |
10 | 5 | 11 promax |
11 | 6 | 12 pro |
12 | 6 | 12 promax |
13 | 7 | Galaxy S10 |
14 | 7 | Galaxy S10 Lite |
15 | 8 | Galaxy Note 10 |
16 | 8 | Galaxy Note 10 Pro |
现在如何获得第一类?
例如:
当用户选择要显示的 Apple 子集数量时:6
或者如果它选择显示移动子集:14 条记录
或者如果它选择 Galaxy Note,它应该显示:2
我的意思是,我想要所有子集的数量
谢谢
【问题讨论】:
你试过什么?你在哪里卡住了?请向我们展示您的尝试。 您必须使用 Group By 功能。 你可能想要having
和join
。
【参考方案1】:
感谢您的指导,我是通过以下方式获得的:
with cte as (
select nid
from TB_Category
where nid = 429
union all
select ca.nid
from cte ct
inner join TB_Category ca on ca.parentid = ct.nid
)
select p.nid
from TB_Category p
inner join cte ct on ct.nid = p.nid
【讨论】:
外部查询中的联接是多余的。以上是关于如何获得一个类别的子集数量?的主要内容,如果未能解决你的问题,请参考以下文章
如何在laravel eloquent查询中获得前10个类别列表
Seaborn.countplot :按数量排序,也按类别排序?