АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗pyPmDODR 128 of 129 menu
Долгожданный Бесплатный курс по выкладке сайта на хостинг. МЫ УЖЕ НАЧАЛИ! Присоединяйтесь к нам!

Двойная связь с одной таблицей в Python

Пусть у нас есть города:

cities
id name
1 city1
2 city2
3 city3

Пусть у нас есть маршруты между городами, при этом каждый маршрут имеет город начала и город конца:

routes
id name from_city_id to_city_id
1 route1 1 2
2 route2 2 3

Пусть мы хотим получить маршруты вместе с городами. Сложность здесь представляет то, что каждый маршрут имеет два города: начало и конец.

Получается, что таблицу с городами нужно джойнить два раза. При каждом джоине таблицу придется переименовать:

SELECT from_cities.name as from_city_name, to_cities.name as to_city_name FROM routes LEFT JOIN cities as from_cities ON from_cities.id=routes.from_city_id LEFT JOIN cities as to_cities ON to_cities.id=routes.to_city_id

Пусть у нас есть юзеры. Каждый юзер имеет отца и мать. Распишите структуру хранения.

enru