У меня есть основная таблица данных и две таблицы, связанные с ней. Таблица данных содержит в строках информацию о странах с соответствующими годами и значениями, если они существуют. Вот как то так
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? Но это не похоже ни на простую процедуру. Сначала запрос «времени», чтобы получить все годы, а затем создать еще один запрос с каждым годом, …?
Спасибо за любые подсказки …
Задача ещё не решена.
Других решений пока нет …