Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 循环浏览一个表以填充另一个表_Postgresql_Loops_Request - Fatal编程技术网

Postgresql 循环浏览一个表以填充另一个表

Postgresql 循环浏览一个表以填充另一个表,postgresql,loops,request,Postgresql,Loops,Request,五天前我在这里问了一个问题: 但现在我面临另一个问题。我希望每个路线的所有公共汽车站都按正确的顺序排列,如下所示:   id_BusLine  | id_BusStop | id_BusStop | id_BusStop | id_BusStop | id_BusStop | --------------+------------+------------+------------+------------+------------+   1       | 4 |

五天前我在这里问了一个问题:

但现在我面临另一个问题。我希望每个路线的所有公共汽车站都按正确的顺序排列,如下所示:

  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     |
事实上,我的模式比第一个问题中解释的要复杂一些,因为在公交线路和公交车站之间,我有公交线路,它有地理数据(这里不重要),id_StartBusStop和id_EndBusStop…我做了很多尝试,但我找不到一种方法在公交线路上循环,然后将它们应用到公交线路上

你知道吗


提前谢谢

Postgresql有一个很好的扩展名为crosstab,用来帮助解决这类问题

您将需要tablefunc扩展或contrib模块(基于您所使用的postgres版本)。以下是文档:


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

您需要的是pivot查询。但这真的不是你应该在数据库中做的事情,如果你需要像那样显示数据,就在你的应用程序中做吧。是的,我就是这么想的。。。这有点棘手,不是很漂亮,但效果很好。对于那些有相同问题的人:只需保存最后一个id的值,并检查每一行是否有相同的id。如果没有,创建一个新实例(并保存id),如果是,只需添加下一个公交车站。