У меня 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
0
Rajkumar 18 Июн 2019 в 13:24

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
1
Sandesh Jain 18 Июн 2019 в 10:49

Вместо 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
1
abbas 18 Июн 2019 в 10:41