EnterSandman
@EnterSandman
Эникей

Как делать join для нескольких таблиц?

Доброго дня. Раньше имел минимальный контакт с join и прошу подсказать как сделать такой запрос или сменить архитектуру.

есть таблица regions
id, name
1, Москва
2, Санкт-Петербург
3, Саратов

таблица cities
id, parentid, name
10, 1, Реутов
11, 2, Шушары
12, 3, Энгельс

и, соответственно, таблица с моими данными data
id, location, name
1, 1, Иван
2, 3, Степан
3, 11, Петр

Как сделать так чтобы можно было сделать выбор из таблицы data с подстановкой локации из обоих таблиц regions и cities?
Т.е. На выходе получить
1, Москва, Иван
2, Санкт-Петербург, Степан
3, Шушары, Петр
заранее благодарю за ответы
  • Вопрос задан
  • 4574 просмотра
Пригласить эксперта
Ответы на вопрос 3
CybernatiC
@CybernatiC
Веб-разработчик
SELECT * FROM appusers a LEFT JOIN city c ON a.city = c.id_city LEFT JOIN country cntry ON c.id_country = cntry.id_country
Ответ написан
Therapyx
@Therapyx
Data Science
Не забывайте делать понятные названия для ваших таблиц. Region (RegionID, Name); city(CityID, RegionID, CityName) итд, чтобы было понятно что есть foreignkey, а что нет.
Locaion откуда эти циферки, что это? Регион? Город? Я понимаю хочется короче, но потом и проблем больше. Особенно у людей, кто с этим может в дальнейшем работать. А так хороший пример уже дал Бердиев )
Ответ написан
Комментировать
@evilelf
Тупой, руки из жопы, кодю за зп и т.п. и т.д.
если location в data это cities, можно попробовать так:
SELECT r.name, d.* FROM data AS d INNER JOIN cities AS c ON c.id=d.location INNER JOIN regions AS r ON r.id = c.parentid
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы