MySQL - 在同一个表中分组查询值

标签 mysql sql

好的,所以我有一个以 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/

相关文章:

sql - 如何统计每小时平均使用Hive的人数?

mysql - 如何从父表复制到子表,其中 1 列分为 3 个不同的列

mysql - 不同行上的事件之间的时间差

php - 无法从站点的子目录加载 MYSQL 驱动程序,可以从主目录加载

PHP 逻辑数组和旧变量与新变量

python - Django 相当于 COUNT 和 GROUP BY

Unix Shell 无法识别 mySQL 命令

html - 寻找 html 输入属性或引导类,我可以在其中修复数据类型冲突问题

mysql - 为什么我不能在子查询中选择多于一列?

sql - 通过连接字符串在 Entity Framework 中启用多个事件结果集(MARS)