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

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

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

Привет всем! Изучила тему про JOIN на форуме, почитала ссылки, и всё равно не могу составить нормальный JOIN запрос. Имеется две таблицы Route
Листинг программы
  1. Start_id End_id
  2. 1 2
  3. 2 1
City
Листинг программы
  1. City_id Name
  2. 1 NY
  3. 2 Boston
Что в итоге хочу получить:
Листинг программы
  1. Start_city End_city
  2. NY Boston
  3. Boston NY
Додумалась до такого кода:
Листинг программы
  1. SELECT City.Name AS Start_city, City.Name as End_city
  2. FROM Route
  3. JOIN City ON City.City_id = Route.Start_id AND City.City_id = Route.End_id
но он не рабочий - в колонках Start_city, End_city выводит название End_city, т.е.
Листинг программы
  1. Start_city End_city
  2. Boston Boston
  3. NY NY
Что я делаю не так?
Немного подумала, разобралась,к ак использовать псевдонимы, в итоге имею код:
Листинг программы
  1. SELECT SC.Name AS Start_city, EC.Name as End_city
  2. FROM Route
  3. JOIN City AS SC ON City.City_id = Route.Start_id
  4. 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
Листинг программы
  1. SELECT cB.name, cA.name
  2. FROM route r
  3.     JOIN city cA ON cA.city_id = r.start_city_id
  4.     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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут