@randm18

Как раскидать (группировать) данные разных таблиц по столбцам sql?

Здравствуйте. Имеется две таблицы к примеру:
города:
(id-name)
1 Москва
2 Новосибирск
и цифры населения по годам
(id-city-year-value)
1 1 2019 10000
2 1 2020 11000
3 1 2021 22000
4 2 2019 111111
5 2 2020 2135
6 2 2021 13135

Как можно объеденить эти две таблицы в результирующую такую:
Название города - Значения 2019 года - Значение 2020 года - Значение 2021 года
Москва 10000 11000 22000
Новосибирск 1111111 2135 13135

Подскажите в какую сторону капать и можно ли обойтись без создания временной таблицы?
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
@mletov
Если код нужен универсальный, чтобы с каждым годом столбцы добавлялись автоматически, то одного SQL запроса мало, какую-то часть запроса придется формировать динамически, например, через PHP.

Ну и PIVOT я бы использовал.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Несколько JOIN'ов. Год указывать в условии ON.
Ответ написан
Комментировать
@randm18 Автор вопроса
SELECT mo.name, v1.val, v2.val, v3.val
FROM mo
JOIN val as v1 on v1.mo = mo.id and v1.year = 2019
JOIN val as v2 on v2.mo = mo.id and v2.year = 2020
JOIN val as v3 on v3.mo = mo.id and v3.year = 2021
Что-то такого плана, верно? Не сильно ли это нагружать будет при работе допустим с 100 городами и для кжадого по 7 годов
Ответ написан
Ваш ответ на вопрос

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

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