2017-04-11 65 views
0

有几行:合并多个行的值成单

Id marks 
1 15 
1 16 
1 17 
2 6 
2 15 
3 9 
3 10 

我想所有的ID合并成一个单一的一行, 输出象下面这样:

Id marks1 marks2 marks3 
1 15 16  17 
2 6  15 
3 9  10 
+0

添加一些更多的样本数据,例如(2,15),(2,16)和(3,18),并调整预期结果。 – jarlh

+0

你是怎么看待@Ritesh Sharma的? –

+0

它工作。谢谢 –

回答

1

拼接领域成单个字段在mysql中变得非常简单。有它的功能。 CONCAT()。更好的是,如果你想用相同的字符串划分它们,你可以使用CONCAT_WS()。这是连接分隔符,第一个参数是分隔符和任何其他参数后,你想加入一个领域。

http://www.w3resource.com/mysql/string-functions/mysql-concat_ws-function.php

SELECT id, CONCAT_WS(' ', marks1, marks2, marks3) as 'mark1 | mark2 | mark3' from my_table group by id; 

UPDATE

我想我误解你的模式结构。我认为你实际上正在寻找的是GROUP_CONCAT()

http://www.w3resource.com/mysql/aggregate-functions-and-grouping/aggregate-functions-and-grouping-group_concat.php

SELECT id, GROUP_CONCAT(marks) as 'All Marks' from my_table group by id;