好的,所以我有一个以 TaskID 和 ChildOf 作为字段的表......所以......
TaskID唯一且自增
If ChildOf == 0, then it has no Parent (top tier)...
If ChildOf != 0, then it is assigned TaskId of its Parent
问题:如何形成查询以给出这样的结果......
Parent Task
Child Task
Child Task
Parent Task
Child Task
Etc.. etc...
如果我使用两个表会更容易吗?我将在此表中包含很多项目,因此我想使用尽可能少的查询(循环)。
非常感谢任何帮助。
谢谢
最佳答案
我认为有一种方法可以在不使用连接的情况下进行排序....
如下-
select * from table_name order by decode(ChildOf,0,TaskID,ChildOf),ChildOf
这将给出所需的输出...
表示父节点,然后是各自的子节点... 然后是第二个父节点等等..
有一件事我不知道 docode 函数是否也在我的 sql 上运行..
如果没有那么你可以使用下面的查询-
select * from table_name order by case when ChildOf=0 then TaskID else ChildOf end,ChildOf
关于MySQL - 在同一个表中分组查询值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6516657/