首页 > 解决方案 > 如何获得一个类别的子集数量?

问题描述

我的产品有一个类别表,名为:TBL_Category

表结构如下:

nid是身份密钥

尼德 PID 姓名
1 1 移动的
2 2 药片
3 1 苹果
4 1 三星
5 3 苹果手机 11
6 3 苹果手机 12
7 4 银河小号
8 4 Galaxy Note
9 5 11专业
10 5 11个
11 6 12 专业
12 6 12个
13 7 银河 S10
14 7 银河 S10 精简版
15 8 银河注 10
16 8 银河注 10 专业版

现在我如何获得第一类?

例如:

当用户选择要显示的 Apple 子集数量时:6

或者如果它选择显示移动子集:14 条记录

或者如果它选择 Galaxy Note,它应该显示:2

我的意思是,我想要所有子集的数量

谢谢

标签: sqlsql-serverjoin

解决方案


感谢您的指导,我是通过以下方式获得的:

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

推荐阅读