Простой JOIN запрос, не удается - MySQL

Узнай цену своей работы

Формулировка задачи:

Привет всем! Изучила тему про JOIN на форуме, почитала ссылки, и всё равно не могу составить нормальный JOIN запрос. Имеется две таблицы Route
Start_id     End_id
     1           2
     2           1
City
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 выводит название End_city, т.е.
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
но теперь возникла ошибка: City.City_id is not valid in the context where it is used. Моя база данных создана на DashDB, но не думаю, что это может быть проблемой. Эта СУБД поддерживает JOIN запросы (без псевдонимов исполняет).

Решение задачи: «Простой 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 для удобства).

  1. SELECT cB.name, cA.name — выбираем два столбца: name из таблицы city
  2. FROM route r — указываем таблицу, с которой работаем (в данном случае route), и задаем ей псевдоним r
  3. JOIN city cA ON cA.city_id = r.start_city_id — присоединяем таблицу city по столбцу city_id, который в таблице route имеет название start_city_id
  4. JOIN city cB ON cB.city_id = r.end_city_id — присоединяем таблицу city по столбцу city_id, который в таблице route имеет название end_city_id Таким образом, в результате выполнения данного запроса получим список пар городов, между которыми есть маршрут, и названия этих городов.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5