У меня 2 стола. Местоположение и Маршрут . В таблице маршрутов у меня есть поля from
и to
, оба отображаются в таблице местоположений.
Местоположение : location_id
, location_name
Маршрут : route_id
, route_from
, route_to
Поскольку и route_from
, и route_to
сопоставлены с таблицей location
, простое присоединение к таблице не дает мне результата. Пытался выполнить запрос ниже, но не смог получить желаемый результат. Как я могу получить имена route_from
и route_to
, сопоставив их с таблицей location
? Помогите мне, ребята!
SELECT * FROM bus_route b, bus_location a
WHERE a.bus_location_id = b.route_from AND a.bus_location_id = b.route_to
2 ответа
Необходимо выполнить объединение таблицы местоположений для каждого зависимого столбца и выбрать нужные значения столбцов, заменив * в запросе выбора необходимыми столбцами.
SELECT * FROM bus_route b
INNER JOIN bus_location a ON a.bus_location_id = b.route_from
INNER JOIN bus_location c ON c.bus_location_id = b.route_to
Вместо AND
используйте OR
в своем запросе.
SELECT * FROM bus_route b, bus_location a
WHERE a.bus_location_id = b.route_from OR a.bus_location_id = b.route_to
Похожие вопросы
Новые вопросы
mysql
MySQL - это бесплатная система управления реляционными базами данных с открытым исходным кодом (RDBMS), использующая язык структурированных запросов (SQL). НЕ ИСПОЛЬЗУЙТЕ этот тег для других БД, таких как SQL Server, SQLite и т. Д. Это разные БД, которые все используют свои собственные диалекты SQL для управления данными.