Я сейчас использую базу данных mysql с данными GTFS , загруженными в нее.
Я пытаюсь получить все маршруты в определенной области (5 км от центральной точки).
Идея состоит в том, чтобы запросить остановки для определенной области, затем от остановок идут мысли stop_times и поездки для получения маршрутов.
Моя проблема в том, что таблица stop_times действительно большая, я не могу найти правильный запрос SQL, чтобы избежать медленного запроса .
Я пробовал обычный запрос внутреннего соединения, затем подзапрос с отличным ключом:
SELECT routes.*
FROM routes
WHERE routes.route_id IN
(SELECT DISTINCT trips.route_id FROM trips WHERE trips.trip_id IN
(SELECT DISTINCT stop_times.trip_id FROM stop_times WHERE stop_times.stop_id IN
(SELECT DISTINCT stops.stop_id FROM stops WHERE ST_DISTANCE_SPHERE(POINT(9.191383,45.464210), stops.coordinate) < 5000)))
Предложение?