gpt4 book ai didi

mysql - 如何使用 GTFS 查找与停靠点关联的路线?

转载 作者:行者123 更新时间:2023-11-30 22:39:43 24 4
gpt4 key购买 nike

因此,我正在构建一个中转应用程序,该应用程序在数据库中为我提供一个 stop_id。我如何找到停靠的公交车?例如:10 路和 23 路公交车经过 stop_id# 1234我尝试了下面的查询,但它每次只为我提供一辆公共(public)汽车

select distinct r.route_short_name
from routes r, trips t, stop_times st
where r.route_id = t.route_id
and t.trip_id = st.trip_id
and st.stop_id =

我检查了我的 gtfs 文件,发现 stop_id#1234 有两条不同的总线为其服务。我也在没有 DISTINCT 的情况下尝试过它,它只是重复列出相同的总线。感谢任何评论/帮助/想法。

最佳答案

您的想法是对的,但您应该改为将表连接在一起。试试这个:

SELECT DISTINCT r.route_short_name
FROM stop_times st
INNER JOIN trips t ON t.trip_id = st.trip_id
INNER JOIN routes r ON r.route_id = t.route_id
WHERE st.stop_id = <stop_id>;

为了获得良好的性能,请确保您已将 stop_times 编入索引以允许通过站点 ID 快速查找行程:

CREATE INDEX stop_times_stop_id_trip_id_index ON stop_times(stop_id, trip_id);

如果您还没有route_idtrip_id 定义为其各自表的主键,您需要为它们创建索引还有那些:

CREATE INDEX routes_route_id_index ON routes(route_id);
CREATE INDEX trips_trip_id ON trips(trip_id);

关于mysql - 如何使用 GTFS 查找与停靠点关联的路线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31435147/

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