Немного неясно, почему вы хотите сделать это, но это достижимо с помощью нескольких функций, реализованных в запросе. См., Например, следующий запрос:
SELECT NAME, idperiode,
SUBSTRING_INDEX(dateclass,',',1) AS date_1,
SUBSTRING_INDEX(SUBSTRING_INDEX(dateclass,',',2),',',-1) AS date_2,
SUBSTRING_INDEX(SUBSTRING_INDEX(dateclass,',',3),',',-1) AS date_3,
SUBSTRING_INDEX(SUBSTRING_INDEX(dateclass,',',4),',',-1) AS date_4,
SUBSTRING_INDEX(dateclass,',',-1) AS date_5
FROM
(SELECT NAME,
idperiode,
GROUP_CONCAT(dateclass ORDER BY dateclass) AS dateclass
FROM mytable
GROUP BY NAME, idperiode) A;
Первая часть - это подзапрос, использующий GROUP_CONCAT
для объединения всех дат (при условии, что все они находятся только в одной таблице). Затем используйте SUBSTRING_INDEX
, чтобы отделить группированные даты. Вы можете просмотреть демонстрационную скрипку здесь
Если есть две таблицы без отношения, то вы можете использовать CROSS JOIN
для таблиц. Я также подготовил скрипку здесь с небольшой модификацией подзапроса, тогда как внешний запрос все еще функционирует так же.