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

时间:2010-06-15 03:10:07

标签: select mysql adjacency-list

我有使用邻接列表模型表示的分层数据。

TABLE
    ID
    parentID
    title

我想知道,选择每个节点的直接子节点数的最简单方法是什么?如果可能的话,我想在一个选择中执行此操作,产生类似的结果集......

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

感谢您的建议!

2 个答案:

答案 0 :(得分:0)

没有标题,

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

答案 1 :(得分:0)

我认为Alex忘记了'Group By 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