如何计算像树结构
这样的祖先中每个名字的子句数ID | NAME | PATH
100 | Electronics & Computers | /100
101 | Games | /100/101
102 | Xbox360 | /100/101/102
103 | PS4 | /100/101/103
所以我应该有像
这样的东西100 | 3
101 | 2
102 | 0
103 | 0
非常感谢你的帮助
答案 0 :(得分:0)
以下是一种使用自连接和聚合的方法:
select t.id, count(t2.id)
from t left join
t t2
on t2.path like concat(t.path, '/%')
group by t.id;
答案 1 :(得分:0)
SELECT A.id,
(SELECT count(B.id) FROM `tablename` B where path like CONCAT('%/', A.id, '%' ) and B.id != A.id) count
FROM `tablename` A