sql >> Database teknologi >  >> RDS >> Mysql

GTFS-forespørgsel for at vise alle afgangs- og ankomsttider mellem to stopnavne

simpelthen at sammenføje data, forbinde til stops to gange for start- og slutstop og tilslutning til stop_times to gange for start- og slutstop_tider,
det eneste, jeg er usikker på, er hvor direction_id kommer fra.
prøv nedenstående forespørgsel.
Længst til sidst i forespørgslen kan du angive start_s.stop_id og end_s.stop_id som repræsenterer de to stop, du forespørger på data om.

SELECT t.trip_id,
       start_s.stop_name as departure_stop,
       start_st.departure_time,
       direction_id as direction,
       end_s.stop_name as arrival_stop,
       end_st.arrival_time
FROM
trips t INNER JOIN calendar c ON t.service_id = c.service_id
        INNER JOIN routes r ON t.route_id = r.route_id
        INNER JOIN stop_times start_st ON t.trip_id = start_st.trip_id
        INNER JOIN stops start_s ON start_st.stop_id = start_s.stop_id
        INNER JOIN stop_times end_st ON t.trip_id = end_st.trip_id
        INNER JOIN stops end_s ON end_st.stop_id = end_s.stop_id
WHERE c.monday = 1 
  AND direction_id = 1
  AND start_st.departure_time > "00:00:00" AND start_st.departure_time < "23:59:59" 
  AND r.route_id = 1
  AND start_s.stop_id = 42
  AND end_s.stop_id = 1

Jeg prøvede at slå et eksempel på GTFS-struktur op fra dette link og jeg kunne ikke finde noget på direction_id

For at angive stopnavne i stedet for AND start_s.stop_id = 42 AND end_s.stop_id = 1
brug bare AND start_s.stop_name = 'Garrison' AND end_s.stop_name = 'Grand Central'




  1. MySQL-fejl 1264:værdi uden for rækkevidde for kolonne

  2. Her er tre grunde til, at du kan se topaktivitet i din SQL-instans

  3. Hvordan ændrer jeg felter i den nye PostgreSQL JSON-datatype?

  4. Generer DEFAULT-værdier i en CTE UPSERT ved hjælp af PostgreSQL 9.3