0

几天前我在这里问了一个问题:Order SQL request when each row contains id of the next one

但现在我面临另一个问题。我想以正确的顺序每 ligne 获得所有公共汽车站,如下所示:

  id_BusLine  | id_BusStop | id_BusStop | id_BusStop | id_BusStop | id_BusStop |
--------------+------------+------------+------------+------------+------------+
      1       |      4     |      8     |      2     |      1     |      6     |
      2       |      6     |      1     |      2     |      8     |      4     |
      3       |      12    |      1     |      8     |      6     |      7     |

事实上,我的架构比第一个问题中解释的要复杂一点,因为在 BusLine 和 BusStop 之间,我有 BusRoad,它有地理数据(这里没关系)、id_StartBusStop 和 id_EndBusStop……我做了一个尝试了很多次,但我找不到一种方法来循环穿过 BusRoads,然后将它们应用到 BusLines……</p>

你有什么想法吗?

提前致谢!

4

1 回答 1

1

Postgresql 有一个很好的扩展名为 crosstab,它可以帮助解决这种确切类型的问题。

您将需要 tablefunc 扩展或 contrib 模块(基于您使用的 postgres 版本)。这是文档:http ://www.postgresql.org/docs/9.2/static/tablefunc.html

文档很清楚,但是如果您需要进一步的帮助,请回发。

于 2013-06-18T22:27:35.950 回答