Я хотел бы переключить столбцы базы данных MySQL на строки.
Для текущей базы данных с такой структурой:
id date category subcategory value
001 date1 cat1 sub1 X
002 date1 cat1 sub2 X
003 date1 cat1 sub3 X
004 date1 cat2 sub1 X
005 date1 cat3 sub1 X
006 date1 cat3 sub2 X
И я хотел бы получить это в результате:
date cat1_sub1 cat1_sub2 cat1_sub3 cat2_sub1 cat3_sub1 cat3_sub2
date1 X X X X X X
База данных довольно тяжелая, так что выполнение этого сценарием займет вечность, поэтому возможно ли это сделать с помощью запроса MySQL?
Например, мой SQLзапрос:
SELECT
DATE_FORMAT(FROM_UNIXTIME(data.timestamp), '%d %m %Y %h:%i:%s') as timestamp,
data_sub_category.designation as sub,
data_key.designation as dkey,
data_row.value as value
FROM data, data_row, data_sub_category, data_key, data_category
WHERE data.id = data_row.id_data
AND data_category.id = data_row.id_data_category
AND data_sub_category.id = data_row.id_data_sub_category
AND data_key.id = data_row.id_data_key
AND data_row.id_data_sub_category IN (1,2,3,22,1,2,3,22)
AND data_row.id_data_key IN (3,4,5,6,9,10,11,12,15,16,17,18,92,93,94,95,96,97,98,99,100,101,3,4,5,6,9,10,11,12,15,16,17,18,92,93,94,95,96,97,98,99,100,101)
AND data.timestamp BETWEEN 1536271200 AND 1536357540
ORDER BY data.timestamp
Спасибо за ваши советы