базы данных составляет около автобусных перевозок таким образом, есть три таблицы:Как показать идентификатор из 1-й таблицы из 2-х различных идентификаторов из 2 таблицы
СТОП
stop_id | stop_name
--------------------
1 | station_1
2 | station_2
3 | station_3
ROUTE
route_id | route_num
--------------------
1 | route_1
2 | route_2
3 | route_3
ROUTE_STOP
stop_id | route_id
------------------
1 | 1
2 | 1
1 | 2
3 | 2
1 | 3
2 | 3
3 | 3
Итак, 1-й маршрут имеет станции 1 и 2, 2-й маршрут - станции 1 и 3, а 3-й маршрут - все станции.
Попытка получить route_num
, который проходит через station_1 и station_3:
SELECT distinct(r.route_num) from STOP s
JOIN ROUTE_STOP rs
ON s.stop_id = rs.stop_id
JOIN ROUTE_STOP r_s
ON rs.stop_id = r_s.stop_id
JOIN ROUTE r
ON rs.route_id = r.route_id
WHERE s.stop_name='station_1' OR s.stop_name='station_3'
AND rs.stop_id <> r_s.stop_id
и результат должен быть route_2 и route_3, но он не работает. Если между станцией нет маршрута, результата не должно быть.
Как добраться route_num
, который проходит через 2 станции, и нет результата, если между двумя станциями нет маршрута?
Имеет ли порядок, в котором останавливаются материя? Это не записано в вашей схеме. – Strawberry
Не имеет значения, появится поле 'time' в ROUTE_STOP, которое будет добавлено – Chiefster