Простой JOIN запрос, не удается - MySQL
Формулировка задачи:
Привет всем!
Изучила тему про JOIN на форуме, почитала ссылки, и всё равно не могу составить нормальный JOIN запрос.
Имеется две таблицы
Route
City
Что в итоге хочу получить:
Додумалась до такого кода:
но он не рабочий - в колонках Start_city, End_city выводит название End_city, т.е.
Что я делаю не так?
но теперь возникла ошибка:
City.City_id is not valid in the context where it is used.
Моя база данных создана на DashDB, но не думаю, что это может быть проблемой. Эта СУБД поддерживает JOIN запросы (без псевдонимов исполняет).
Start_id End_id 1 2 2 1
City_id Name 1 NY 2 Boston
Start_city End_city NY Boston Boston NY
SELECT City.Name AS Start_city, City.Name as End_city FROM Route JOIN City ON City.City_id = Route.Start_id AND City.City_id = Route.End_id
Start_city End_city Boston Boston NY NY
Немного подумала, разобралась,к ак использовать псевдонимы, в итоге имею код:
SELECT SC.Name AS Start_city, EC.Name as End_city FROM Route JOIN City AS SC ON City.City_id = Route.Start_id JOIN City AS EC ON City.City_id = Route.End_id
Решение задачи: «Простой JOIN запрос, не удается»
textual
Листинг программы
SELECT cB.name, cA.name FROM route r JOIN city cA ON cA.city_id = r.start_city_id JOIN city cB ON cB.city_id = r.end_city_id;
Объяснение кода листинга программы
В данном коде выполняется простой JOIN запрос на соединение двух таблиц: route
и city
. Запрос выбирает два столбца: name
из таблицы city
(обозначим их как cA и cB для удобства).
- SELECT cB.name, cA.name — выбираем два столбца:
name
из таблицыcity
- FROM route r — указываем таблицу, с которой работаем (в данном случае
route
), и задаем ей псевдонимr
- JOIN city cA ON cA.city_id = r.start_city_id — присоединяем таблицу
city
по столбцуcity_id
, который в таблицеroute
имеет названиеstart_city_id
- JOIN city cB ON cB.city_id = r.end_city_id — присоединяем таблицу
city
по столбцуcity_id
, который в таблицеroute
имеет названиеend_city_id
Таким образом, в результате выполнения данного запроса получим список пар городов, между которыми есть маршрут, и названия этих городов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д