2

以下は私が持っているものです

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

私が欲しいのは

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

行を結合し、テーブルのように複数の行に対してユーザーのデータを 1 つの行に表示したいと考えています。

それを行う方法はありますか?

:すべてのフィールドのデータを持つ行はありません。また、以下のシナリオのユーザーはいません。

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

ユーザーごとに 1 つの行に 1 つのデータと 2 つの行のみ。

で試しました

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

しかし来ない。

sqlfiddle のデータ

4

1 に答える 1

3

グループ化されたデータを集計するときは、MySQL の集計関数のいずれかを使用する必要があります。GROUP_CONCAT()(非集約文字列関数) の代わりに使用するかCONCAT()、そうでない場合 (数値データに適しています) を使用しますSUM()

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

デモ

于 2012-06-30T07:45:35.613 に答える