Существует таблица MYSQL, которая имеет следующую структуру:
CREATE TABLE `data` (
`ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`objectID` INT(10) UNSIGNED NOT NULL,
`actionID` INT(10) UNSIGNED NOT NULL,
`year` DATE NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE INDEX `ID` (`ID`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM;
Со следующим содержимым:
ID objectID actionID year
1 1 1 2013
2 2 3 2013
3 1 7 2014
4 2 3 2014
5 1 4 2015
6 2 2 2015
Я делаю запрос следующего вида:
SELECT
objectID,
CASE year WHEN "2010" THEN actionID ELSE 0 END as "2013",
CASE year WHEN "2011" THEN actionID ELSE 0 END as "2014",
CASE year WHEN "2012" THEN actionID ELSE 0 END as "2015"
FROM data
И получаю следующий ответ (возможны несколько различных actionID
для objectID
в одном году):
objectID 2013 2014 2015
1 1
1 7
1 8
1 2
2 3
2 3
2 2
Вопрос заключается в том, смогу ли я и каким образом, при некой модификации запроса, получить ответ вида:
objectID 2013 2014 2015
1 1 7,8 2
2 3 3 2
Или:
objectID 2013 2014 2014 2015
1 1 7 8 2
2 3 3 2
При использовании GROUP BY objectID
отображается только одна из строк на ряд:
objectID 2013 2014 2015
1 1
2 3
Решение, устроившее меня, на основе совета Mike:
SELECT
objectID,
group_concat(
DISTINCT CASE years WHEN "2013" THEN km_typeID END SEPARATOR '; '
) as "2013",
group_concat(
DISTINCT CASE years WHEN "2014" THEN km_typeID END SEPARATOR '; '
) as "2014",
group_concat(
DISTINCT CASE years WHEN "2015" THEN km_typeID END SEPARATOR '; '
) as "2015",
FROM data
GROUP BY objectID;
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Так выглядит мой запрос:
В таблице хранится строка вида '1,2,10,12,30'Здесь прописываются группы пользователя
Есть запрос выводящий все заказыВ таблице teh_otdel есть 6 отделов, и сейчас они все выводятся