У меня есть две таблицы: Route и Stop (одна ко многим).А также у меня есть входные данные: два идентификатора местоположения, которые связаны с таблицей «стоп».У каждого маршрута есть свой ЗАКАЗАННЫЙ список остановок.Мне нужно выбрать маршрут на основе порядка остановок (OLNY, где stop.order поднимается) с начальными и конечными точками.
Пример данных:
| ROUTE |
--------------------
| id | name |
--------------------
| 1 | first |
--------------------
| 2 | second |
--------------------
---------------------------
| STOP |
---------------------------
|id | order |loc_id|route_id|
----------------------------
| 1 | 1 | 1 | 1 |
---------------------------
| 2 | 2 | 2 | 1 |
---------------------------
| 3 | 3 | 3 | 1 |
---------------------------
| 4 | 3 | 1 | 2 |
---------------------------
| 5 | 2 | 2 | 2 |
---------------------------
| 6 | 1 | 3 | 2 |
---------------------------
USEПРИМЕР: например, у меня есть 3 местоположения: Лос-Анджелес (id = 1), Чикаго (id = 2) и Нью-Йорк (id = 3).Также есть 2 автобусных маршрута: из Лос-Анджелеса в Нью-Йорк и из Нью-Йорка в Лос-Анджелес.Это означает, что у меня есть 3 автобусные остановки на основе заданных местоположений для каждого маршрута, но они имеют противоположный порядок.Поэтому мне нужно создать запрос MySQL, чтобы выбрать соответствующий маршрут, имеющий начальное и конечное местоположения.Например, если у меня Чикаго в качестве отправной точки и Лос-Анджелес в качестве финиша, запрос должен вернуться ко мне по маршруту Нью-Йорк в Лос-Анджелес.Если у меня есть местоположения в Чикаго и Нью-Йорке - он должен получить маршрут из Лос-Анджелеса в Нью-Йорк.
Это запрос, который я смог создать, но, конечно, он не работает
SELECT `route`.*
FROM `route`
WHERE (SELECT stop.order FROM `stop` WHERE stop.locationId = 1) < (
SELECT stop.order FROM `stop` WHERE stop.locationId = 2)
(где 1и 2 являются входными данными идентификаторов местоположения)
Мне нужен этот результат, если у меня есть loc_id 1 и 2
--------------------
| id | name |
--------------------
| 1 | first |
--------------------
Поэтому, если loc_id = 2 и 1, мне нужен следующий результат:
--------------------
| id | name |
--------------------
| 2 | second |
--------------------