计数嵌套组儿童
问题描述:
我创建了以下小提琴: http://sqlfiddle.com/#!2/fc0d9/19计数嵌套组儿童
我想从以下适应SQL来算每个节点都有直接的孩子的数量: http://en.wikipedia.org/wiki/Nested_set_model
CREATE TABLE Personnel
(
name varchar(20),
lft int,
rgt int
);
SELECT Parent.name, count(Child.*)
FROM Personnel AS Child, Personnel AS Parent
WHERE Parent.lft < Child.lft AND Parent.rgt > Child.rgt
GROUP BY Parent.name
答
以下修复了您的语法错误:
SELECT Parent.name, count(*)
FROM Personnel AS Child join
Personnel AS Parent
on Parent.lft < Child.lft AND Parent.rgt > Child.rgt -- associate Child Nodes with ancestors
GROUP BY Parent.name;
SQL不允许表达式sion count(child.*)
。
这是正确的数据吗? http://sqlfiddle.com/#!2/fc0d9/20 – paqogomez 2014-12-13 02:20:26
是的,这是人事数据。我的SQL显示了所有后代的数量,但是我正试图将数量限制在直接的孩子身上。维基百科链接显示如何只返回直接的孩子,但我不知道如何计算它们。 – Dercni 2014-12-13 02:27:47