gpt4 book ai didi

sql - 当每行包含下一行的 id 时,对 SQL 请求进行排序

转载 作者:行者123 更新时间:2023-11-29 13:34:18 26 4
gpt4 key购买 nike

我的数据库中有 2 个表:BusLinesBusStopsBusLines 的每个实例都可以按照特定顺序关联多个站点。为了使关联更易于管理(在现有线路中删除或添加新站点),关联表设计为具有以下结构:

id_BusLine | id_巴士站 | id_NextBusStop |是第一站

这样做似乎是个好主意,而不是给每个停靠点一个数字,一旦必须将新的停靠点添加到行的开头,就必须为每个记录更改该数字(但是如果您有更好的主意,我当然想听听)。

因此,重申一下:我如何在每一行上创建一个 SELECT 语句以使所有停靠点按正确顺序排列?因为我无法通过简单的 ORDER BY... 解决它

最佳答案

如果使用 sql server 那么我认为像这样的递归 cte 是可行的

;WITH route AS
(
SELECT BusLineId, BusStopId, NextBusStopId
FROM BusLine_BusStop
WHERE IsFirstStop = 1
UNION ALL
SELECT b.BusLineId, b.BusStopId, b.NextBusStopId
FROM BusLine_BusStop b
INNER JOIN route r
ON r.BusLineId = b.BusLineId
AND r.NextBusStopId = b.BusStopId
WHERE IsFirstStop = 0
)

SELECT BusLineId, BusStopId
FROM route
ORDER BY BusLineId

demo

关于sql - 当每行包含下一行的 id 时,对 SQL 请求进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16874590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com