假设我有一个具有以下结构的表:获取给定ID的根和叶节点 - 如何?
=================
| Id | ParentId |
=================
| 1 | 0 |
| 2 | 1 |
| 3 | 1 |
| 4 | 2 |
| 5 | 2 |
| 6 | 3 |
| 7 | 3 |
-----------------
这导致了这样的树:
1
/\
2 3
/\ /\
4 5 6 7
获得一个ID,我如何得到所有的叶节点?所以,如果给定的id是2,返回应该是4 & 5.给定的id永远不会是叶节点本身。
我不知道这里怎么修改SQL:http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/
SELECT t1.name FROM
category AS t1 LEFT JOIN category as t2
ON t1.category_id = t2.parent
WHERE t2.category_id IS NULL;
EDIT1:此外,我如何得到一个给定id根ID?因此,如果给定的ID为2,返回应为1
如果在您的示例中给定的id是1,结果会是什么? – 2010-08-16 01:12:37
不确定。没有? 0? – StackOverflowNewbie 2010-08-16 01:20:38
我真的会建议你实际使用你指出的文章中描述的表结构。从长远来看,你会为自己节省很多挫折。 – mhitza 2010-08-16 02:06:54