2015-05-27 4 views
4

У меня есть таблица, как этотСоединить поля в Mysql

id name value 
1 Ram  a 
2 John b 
3 Ram  c 
4 Ram  d 
5 John e 

Я хочу выход как этот

name value 
Ram  a,c,d 
John b,e 

Есть ли способ, чтобы выполнить этот запрос?

UPDATE: Формат

Таблица:

id field1 value field2 
1 val1  a  null 
2 val2  b  null 
3 val1  c  null 
4 val2  d  null 
5 null  e  val1 
5 null  f  val1 
5 null  g  val2 
5 null  h  val2 

Выход:

field1 field2 value 
val1  null a,c 
val2  null b,d 
null  val1 e,f 
null  val2 g,h 

Есть ли способ, чтобы выполнить это?

ответ

5

Вы можете использовать group_concat

select 
name, group_concat(value separator ',') as value 
from table_name 
group by name 

Кроме того, если вы хотите, чтобы значения заказывается вы можете использовать order by в group concat в

select 
name, group_concat(value order by value) as value 
from table_name 
group by name 
+1

Спасибо за ваше время, пожалуйста, проверьте мой обновленный вопрос –

+0

Вам просто нужно добавить еще одну группу по http://sqlfiddle.com/# ! 9/d1e86/1 –

+0

Также не меняйте исходный вопрос, первый ответ был очень правильным в отношении предоставленного вопроса. –

1

использовать это:

SELECT field1, field2, GROUP_CONCAT(value ORDER BY value SEPARATOR ',') 
AS value FROM table 
GROUP BY field1, field2; 
+1

Спасибо за ваше время, PLS проверить мой обновленный вопрос –

+1

Спасибо, это то, что мне нужно ... –

1

использования group_concat()

SELECT name, GROUP_CONCAT(value) AS value FROM my_table group by name 
+1

Спасибо за ваше время, PLS проверить мой обновленный вопрос –

+0

попробовать группу по field1, field2 –

1

group_concat функция должна сделать трюк для вас:

SELECT name, GROUP_CONCAT(value) AS value 
FROM  my_table 
GROUP BY name 
+1

Спасибо за ваше время, PLS проверить мои обновленный вопрос –

1

Вы должны использовать group_concat

select name,group_concat(value) from tablename group by name 
+1

Спасибо за ваше время, PLS проверить мой обновленный вопрос –

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