2013-04-18 2 views
-1

я борюсь с запросом я должен сделать для программы:MySQL объединить повторяющиеся строки

Это структура моей таблицы (имена пример столбцов):

один ID и имя может иметь несколько Коэффициенты, как:

ID-Name-Coefficient 
1-NameHere-0.5 
1-NameHere-0.6 
1-NameHere-0.7

Это, как я хотел бы мой результат запроса выглядеть следующим образом:

1-NameHere-0.5-0.6-0.7

Итак, все дубликаты коэффициентов, я хочу в отдельных столбцах, но все в одной строке.

Каким будет лучший способ достичь этого запроса?

+0

Это называется стержнем. Для этого MySQL не имеет встроенных функций. Без каких-либо исследований я не думаю, что кто-то захочет написать код для вас. – Kermit

+0

, если известно количество коэффициентов, это может быть выполнено с помощью внутренних соединений на основе известной величины. Если они не ограничены, вы смотрите на некоторый динамический SQL. См. Http://stackoverflow.com/questions/4078983/is-there-a-way-to-pivot-rows-to-columns-in-mysql-without-using -case для получения дополнительной информации – xQbert

ответ

2

Вы не можете иметь переменное количество столбцов в SQL, но вы можете объединить значения в одном столбце:

SELECT id, name, GROUP_CONCAT(coefficient) 
FROM mytable 
GROUP BY 
     id, name 

Это будет возвращать что-то вроде

0.5,0.6,0.7 

в третьей колонке, которая вам может позже разобрать на клиенте.

Смежные вопросы