2017-06-02 83 views
0

我需要编写一个查询来查找GTFS数据结构中两个站点之间的路由/行程,我已将所有csv数据迁移到mysql表中。下面是stop_times.txt间接路由的GTFS SQL查询

trip_id,arrival_time,departure_time,stop_id,stop_sequence,stop_headsign,shape_dist_traveled 
170309010001S10,12:24:00,12:24:00,10000871,1,MRT SG BULOH - HOSPITAL SG BULOH,0.00688 
170309010001S10,12:28:32,12:28:32,10000872,2,MRT SG BULOH - HOSPITAL SG BULOH,1.249023 
170309010001S10,12:29:57,12:29:57,10002386,3,MRT SG BULOH - HOSPITAL SG BULOH,1.595181 
170309010001S10,12:31:58,12:31:58,10000874,4,MRT SG BULOH - HOSPITAL SG BULOH,2.113874 
170309010001S10,12:33:45,12:33:45,10000875,5,MRT SG BULOH - HOSPITAL SG BULOH,2.56561 

样本数据我不能做一个查询,将返回到我所有的间接路线的车次,任何帮助将非常感激。

+1

如果你需要找到他们开始和结束不同路线的路径,最好通过查看OpenTripPlanner来获得服务:http://docs.opentripplanner.org/en/latest/Basic-Usage/ –

回答

0

如果你只想要Trip.Id和Route.Id在两站之间。

select StopTimes.TripId , Trips.RouteId 
from StopTimes 
join Trips on (Trips.Id = StopTimes.TripId) 
Where TripId in 
(
    select StopTimes.TripId 
    from StopTimes 
    Where StopTimes.StopId = FirstStopId 
) 
And StopTimes.StopId = SecondStopId 

请记住,要在StopTimes.TripId上创建索引。