有两个关键字:一是等级,我用 G 表示,父节点,我用 P 表示。
现在需要做一个查询,选择该节点下所有一级子节点(比如 A 下面就是 B,E;)和在该节点下(这个很重要)所有一级子节等级相同的所有结果。
比如在 A 结果下查找:结果应该是 B,C,D,E。
在 B 下查找结果应该是 C 和 D 但是没有 E。
比如 A 下第一级子节点:
select * from table where P='A';
查找与 A 一级子节点等级相同的结果,这里假如知道是 1 ;
select * from table where G=1;
这样两个结果集何在一起但是不能在该节点下,不知道怎么做减法。
一些思路:1 递归,2 闭包表设计
越写越复杂,不知道哪位有一些好的方法。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.