MySQL Crosstab или PHP Array? Каков наилучший способ преобразования содержимого конкретной таблицы?

У меня есть основная таблица данных и две таблицы, связанные с ней. Таблица данных содержит в строках информацию о странах с соответствующими годами и значениями, если они существуют. Вот как то так

variable_code | country_code | year_code | value
1              291          73         28
1              291          75         22
1              443          74         12

Код года обозначает что-то вроде 1990, 1991, …

Теперь я хотел бы иметь массив таблицы / PHP, как

country_code | 1990 | 1991 | 1992
291        73      x     28
443         x     12      x

SQL для поиска для одной переменной в виде

country_code | year_code | value
Afghanistan     1990       28
Afghanistan     1992       28
Albania         1991       28

выглядит так:

SELECT
country.country_name,
time_id.year_start,
data.data_value
FROM
data JOIN time_id ON data.time_ID = time_id.time_id
JOIN country ON data.country_id = country.country_id
WHERE
data.Indicator_ID = '314'
ORDER BY
country.country_name,
time_id.year_start

Доступное количество лет меняется для каждой из ~ 1000 переменных.

Я не могу создать ВИД, который мог бы помочь в этом процессе (не имеют привилегий).

Если не так легко создать в MySQL, может быть, лучше сделать это в PHP? Но это не похоже ни на простую процедуру. Сначала запрос «времени», чтобы получить все годы, а затем создать еще один запрос с каждым годом, …?

Спасибо за любые подсказки …

(Смотрел Вот а также Вот и … но это не одно и то же.)

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]