【发布时间】:2014-11-19 01:06:29
【问题描述】:
我有一个标准的嵌套集模型,每个节点都有名称、lft 和 rgt 属性。
我可以使用以下方法找到特定员工的上级:
SELECT P2.* FROM Personnel AS P1, Personnel AS P2
WHERE P1.lft BETWEEN P2.lft AND P2.rgt
AND P1.name = "Bob"
ORDER BY P2.lft
我也可以通过添加limit&offset来找到level2 manager:
SELECT P2.* FROM Personnel AS P1, Personnel AS P2
WHERE P1.lft BETWEEN P2.lft AND P2.rgt
AND P1.name = "Bob"
ORDER BY P2.lft
LIMIT 2 OFFSET 1
在某些情况下,我可能有多个名为“Bob”的员工在不同的二级经理手下工作。二级经理名称是唯一的。
我需要一个查询来返回名为“Susan”的二级经理的所有名为“Bob”的员工。
编辑:我的查询只需要返回在“玛丽”下工作的“鲍勃”,因为他是唯一一个拥有名为“苏珊”的二级经理。
Big Boss
/ \
Brian Susan
| |
Susan Mary
| |
Bob Bob
【问题讨论】:
标签: sql nested-sets