sql获取层次结构基表的最新节点?

sql获取层次结构基表的最新节点?,sql,mysql,Sql,Mysql,我有一个这样的数据表 id = 1, parent = 0 id = 2, parent = 1 id = 3, parent = 1 id = 4, parent = 1 id = 5, parent = 0 id = 6, parent = 5 id = 7, parent = 5 id = 8, parent = 5 id = 9, parent = 0 现在我想得到这样的结果,只有树的最新节点 我该怎么做 id = 4, parent = 1 id = 8, parent = 5

我有一个这样的数据表

id = 1, parent = 0
id = 2, parent = 1
id = 3, parent = 1
id = 4, parent = 1

id = 5, parent = 0
id = 6, parent = 5
id = 7, parent = 5
id = 8, parent = 5

id = 9, parent = 0
现在我想得到这样的结果,只有树的最新节点 我该怎么做

id = 4, parent = 1
id = 8, parent = 5
id =9, parent = 0

编辑1:如果我设置根节点的父节点\u id=id怎么办?这意味着我可以按父id分组。我只是担心将来需要获取根节点时会出现问题(这意味着,我不再只是查询父id=0的位置;我将不得不执行id=parent\u id的位置)

假设id较高的节点“较晚”,那么它只是:

select max(id), parent from tree group by parent;

对于根节点,肯定必须首先插入,因此会有一个已知的id,如1或0,或者可能有一个特殊的父id,如NULL或-1。

MySQL没有层次结构函数,但我应该能够得到结果,使用普通sql,没有使用层次函数,对吗?是的,thanx它给了我正确的结果4,8,9。但若稍微改变一下数据,就说我只有像上面例子中的ID1,2,3,4这样的数据。它显示了1和4。它应该只显示4对吗?我需要调整什么来适应这个sql?1是最近添加的零的子级,4 si是1的最近的子级,所以这是正确的,不是吗?最后我做的是使parent=id不再是parent的零(0),例如:如果新行是id=1,那么parent=1,因此您的sql给出了我想要的。。很多