mysql создать таблицу из другой таблицы - PullRequest
0 голосов
/ 08 мая 2020

Я хочу создать таблицу из другой таблицы. У меня есть таблица A, как показано ниже:

TABLE A
id   year   month   value
1    2020   1       5*
2    2020   2       2**
3    2019   5       15***
...

И я хотел бы с помощью mysql создать таблицу из этой таблицы в этой модели:

TABLE B
id   year   jan   feb   mar   apr   may  ...
1    2020   5*    2**   7     5     4
2    2019   1     4     3     1     15***
...

Я могу сделать это с код в php, но я хотел бы сделать это в mysql, чтобы я мог создать файл миграции для laravel, и это будет автоматически управляться администратором.

Я знаю, что должен публиковать сообщения Я пробовал, но, как я уже сказал, я больше программист php и знаю, как это сделать в php. Я проверил, как создать таблицу из другой таблицы, но я не нашел решения, объясняющего, когда несколько записей необходимо заполнить спецификацией c записи в новой таблице.

1 Ответ

0 голосов
/ 08 мая 2020

Можно использовать условное агрегирование:

select id, year,
       max(case when month = 1 then value end) as jan,
       max(case when month = 2 then value end) as feb,
       max(case when month = 3 then value end) as mar,
       . . .
from t
group by id, year;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...