【发布时间】:2017-04-10 01:21:24
【问题描述】:
我有一个包含“团队”信息的表格。团队可以有子团队 - 每行都有一个“parent_id”列,其中包含该子团队父级的“team_id”。以下是数据示例:
team_id team_name parent_id
1 sales (null)
2 executives (null)
3 emea sales 1
4 apac sales 1
5 uk sales 3
我想要实现的只是按 team_id 的顺序选择表中的所有行,但我希望子团队在其父团队之后立即返回,也按 team_id 顺序。因此,对于上面的示例数据,我希望按以下顺序返回数据:
team_id team_name parent_id
1 sales (null)
3 emea sales 1
5 uk sales 3
4 apac sales 1
2 executives (null)
我已经花了几个小时想知道如何实现这一点,但真的没有想出任何有用的东西!我将不胜感激有关如何解决此问题的任何指示。
请注意,我正在处理一个现有项目,无法真正对数据库/实现进行重大更改。我正在使用 PHP 和 Oracle 以及存储过程,这对我来说是新的。
【问题讨论】:
-
为什么不用 php 来实现呢?
-
@Vasil 我可能会尝试使用 PHP 实现我想要的,但我正在寻找 SQL 解决方案的原因是因为团队的数量未知,我将检索并显示 50 条记录页面,按照我指定的顺序
-
对不起,伙计,如果不更改数据库,我想我无法帮助您。不止一个查询呢?
-
这与 PHP 无关,它可以(并且应该)在数据库中非常有效地完成。正如 Boneist 所展示的那样。
标签: php sql oracle stored-procedures