如何计算邻接列表中每个节点的直接子节点数

问题描述:

我有使用邻接列表模型表示的分层数据。如何计算邻接列表中每个节点的直接子节点数

TABLE 
    ID 
    parentID 
    title 

我想知道,什么是最简单的方法来选择每个节点的直接孩子的数量?如果可能的话,我想这样做在一个单一的选择,从而产生像这样的结果集...

RESULTS... 
ID  title  childCount 
1  test1  10 
2  test2  2 
3  test3  0 
etc... 

谢谢你的建议!

没有标题,

SELECT parentID as ID, COUNT(ID) AS childCount 
    FROM Table 
    GROUP BY parentID 

如果你想要的标题我想你需要一个自连接(可能是方法要慢):

SELECT t1.ID as ID, t1.Title as Title, COUNT(t2.ID) as childCount 
    FROM Table t1 
    LEFT OUTER JOIN Table t2 
    ON t1.ID = t2.parentID 

我认为亚历克斯忘记“集团通过T2 .parentID”

,你也可以试试:

SELECT t1.ID as ID, t1.Title as Title, COUNT(t2.ID) as childCount 

FROM表t1 INNER JOIN表t2 ON t1.ID = t2.parenID GROUP BY t2.parentID