我有使用邻接列表模型表示的分层数据。
TABLE
ID
parentID
title
我想知道,选择每个节点的直接子节点数的最简单方法是什么?如果可能的话,我想在一个选择中执行此操作,产生类似的结果集......
RESULTS...
ID title childCount
1 test1 10
2 test2 2
3 test3 0
etc...
感谢您的建议!
答案 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