我有这样的表格数据
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:如果我设置根节点的parent_id = id怎么办?这意味着我可以通过父ID进行分组。我只是担心将来需要获取根节点时会出现问题(意思是,我不再只是查询WHERE parent_id = 0;我必须做WHERE id = parent_id)
答案 0 :(得分:0)
假设具有较高ID的节点是“稍后”,那么它只是:
select max(id), parent from tree group by parent;
对于根节点,肯定必须首先插入,因此会有一个已知的id,如1或0,或者可能有一个特殊的父id,例如NULL或-1。