我在几天前问了一个问题:Order SQL request when each row contains id of the next one
但现在我遇到了另一个问题。我想以正确的顺序获得每个公共汽车站点,如下所示:
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的方法...
你有什么想法吗?
提前致谢!
答案 0 :(得分:1)
Postgresql有一个很好的扩展名为crosstab,用于帮助解决这类问题。
你需要tablefunc扩展或contrib模块(基于你所使用的postgres版本)。这是文档:http://www.postgresql.org/docs/9.2/static/tablefunc.html
文档很清楚,但如果您需要进一步的帮助,请回复。