求一条子查询语句,先答先得分
求一条子查询语句,先答先得分
表视图如下:
ID FatherID SortID Title
1 0 1 北京
2 0 2 上海
3 0 3 安徽
4 0 4 广东
5 1 5 怀柔
6 1 6 平谷
7 2 7 黄浦
8 2 8 徐汇
9 3 9 合肥
10 3 10 黄山
11 9 11 肥西
13 9 12 肥东
14 11 13 小东
15 11 14 开源
16 11 15 明膦
17 13 16 炒的
18 13 17 水扔
19 13 18 火光
20 13 19 六月
21 4 20 广州
22 4 21 佛山
23 21 22 东山
24 21 23 荔湾
25 23 24 伯遥
26 3 25 安庆
27 3 26 芜湖
28 20 27 时代
29 0 28 山东
我们知道下面的语句可以查询出所有的最高层级
SELECT [ID],[FatherID],[SortID],[Title]
FROM [jc_ArticleClass]
Where [FatherID]=0
可是现在我想在查询结果中再加上一列,用于显示此最高层级下的有多少了子类别,结果显示如下
ID FatherID SortID Title Num
1 0 1 北京 2
2 0 2 上海 2
3 0 3 安徽 4
4 0 4 广东 2
29 0 28 山东 0
这里的Num就是这条下的下级类别数,如北京后面的2,其实就相当于执行了SQL
select count(id) from [jc_ArticleClass] where [FatherID]=1
请问这样的SQL子查询怎么写了!
先回答分数全给谁! sql 子查询
[解决办法]
SELECT A.[ID],A.[FatherID],A.[SortID],A.[Title]
,ISNULL(COUNT(B.ID),0) AS Num
FROM [jc_ArticleClass] A
LEFT JOIN [jc_ArticleClass] B
ON A.ID = B.FatherID
Where A.[FatherID]=0
GROUP BY A.[ID],A.[FatherID],A.[SortID],A.[Title]