我有一个基于以下结构
的遗留系统系统有一个用户ID,名称,父级和侧面。这边是tinyint(0 =左,1 =右),这意味着当前用户所在的一侧。
现在我只想拥有特定节点的子节点数。 我有一个递归解决方案,但随着数据大小的增加而停止。
WITH MyCTE AS (
SELECT node.username, node.referenceID
FROM Members as node
WHERE node.referenceID = 'humansuceess10'
UNION ALL SELECT parent.username, parent.referenceID
FROM Members as parent , MyCTE as x
WHERE x.username= parent.referenceID
) SELECT COUNT(username) FROM MyCTE option (maxrecursion 0) ;
我已经在15000条记录上测试了这个查询,不幸的是它卡住并导致超时错误。
我正在寻找一种非递归解决方案。