在一行中显示数据(来自多行)

时间:2012-06-30 07:39:29

标签: mysql

以下是我的内容

++++++++++++++++++++++++
+ id + field1 + field2 +
++++++++++++++++++++++++
+ 1  +  1     +        +
+ 1  +        +   1    +
+ 2  +  1     +        +
+ 2  +        +   2    +
++++++++++++++++++++++++

我想要的是

++++++++++++++++++++++++
+ id + field1 + field2 +
++++++++++++++++++++++++
+ 1  +  1     +   1    +
+ 2  +  1     +   2    +
++++++++++++++++++++++++

我希望将行中的行和数据显示在一行中,而不是像我在表中那样显示多行。

知道该怎么做吗?

注意:我没有任何行拥有所有字段的数据。并且我没有任何用户使用以下方案。

++++++++++++++++++++++++
+ id + field1 + field2 +
++++++++++++++++++++++++
+ 3  +  1     +        +
+ 3  +  1     +   1    +
++++++++++++++++++++++++

一行中只有1个数据,每个用户只有两行。

我试过

SELECT id, concat(field1), concat(field2) from myTable
GROUP BY id;

但它没有来。

data at sqlfiddle

1 个答案:

答案 0 :(得分:3)

汇总分组数据时,您需要使用MySQL的aggregate functions之一。使用GROUP_CONCAT()代替(非聚合字符串函数)CONCAT(),否则(更适合数字数据)使用SUM()

SELECT id, SUM(field1), SUM(field2) FROM myTable GROUP BY id

Demo