如何查询子关系到同一个表并正确排序

rob*_*pnl 5 mysql sql

拿这个表:

id      name      sub_id
---------------------------
1        A        (null)
2        B        (null)
3        A2       1
4        A3       1
Run Code Online (Sandbox Code Playgroud)

sub_id列是他自己的表与列ID的关系.

 subid --- 0:1  --- id
Run Code Online (Sandbox Code Playgroud)

现在我有一个问题是创建一个正确的SELECT查询,以显示在其父行下直接选择的子行(sub_id不为null).所以这必须是正确的顺序:

1    A    (null)
3    A2   1
4    A3   1
2    B    (null)
Run Code Online (Sandbox Code Playgroud)

一个正常的SELECT命令id.但是,如何或哪个关键字帮助我正确订购?

我认为JOIN是不可能的,因为我希望将所有行分开.因为行将显示在带有EntityDataSource的Gridview(ASP.Net)上,但子行必须直接显示在其父级下.

谢谢.

Ben*_*Ben 5

看看在MySQL管理分层数据.

由于递归是一项昂贵的操作,因为基本上你要向数据库发出多个查询,你可以考虑使用嵌套集模型.简而言之,您将数字分配给表格中的范围.这是一篇很长的文章,但值得一读.我在实习期间使用它作为一个解决方案,不要有1000多个查询,但将其归结为1个查询.

您的处理"开销"现在在于通过添加,更新或删除记录来更新表.因为您必须使用更大的"正确值"更新所有记录.但是当你检索数据时,一切都是1查询:)