Я работаю над мобильным приложением, которое принимает два входа - Имя станции-источника и Имя станции-получателя. После получения этих двух входных данных приложение затем запишет названия поездов, доступных для данных станций, вместе с их временами source_arrival и destination_reach.
( Примечание : На данный момент я сосредоточен только на незарезервированных местных поездах, которые работают в штате Западная Бенгалия, Индия)
Я использую SQLite в качестве СУБД. У меня есть следующие три таблицы в качестве источников данных -
train_table (в котором есть подробная информация о доступных поездах):
station_table (который содержит информацию о станциях):
route_table (который содержит детали маршрута):
Теперь моя цель - произвести вывод следующим образом, как указано ранее (предположим, я дал Баруйпур Джн в качестве источника и Сеалда в качестве пункта назначения):
Я не могу понять, какой запрос необходим для этого. Сначала я пытался что-то вроде следующего:
select r1.trainId, r1.arrival as SrcArrive, r2.arrival
as Reach from route_table r1 cross join route_table r2
where r1.trainId = r2.trainId and r1.stationId <> r2.stationId and
r1.arrival <> r2.arrival;
(Да, без trainName )
Но я не смог сократить непреднамеренные тайминги source_arrival. Однако мне удалось получить количество различных поездов, доступных для данных двух станций, с помощью следующего:
select _id, trainNO, trainName from train_table where _id in
(select trainId from route_table where stationId = 109
INTERSECT
select trainId from route_table where stationId = 21);
Но при этом я не смогу достичь нужного мне результата.