0

列ID、列IDでグループ化し、IDごとにユーザーのリスト(カンマ区切り)を表示したいユーザーを持つテーブルがあります。

最終出力では、次を表示する必要があります。

user joe - id 1
users jim, mark, john - id 2
user dave - id 3
....

これを試してみると、「カーディナリティ違反: 1242 サブクエリが複数の行を返します」というエラーが表示されます。

SELECT id, (SELECT distinct(user) FROM mytable b where a.id = b.id)
FROM mytable a
GROUP BY id
4

2 に答える 2

3

MySQL を使用しているため、GROUP_CONCAT関数という組み込み関数があります。たとえば、次のようなレコードがあります。

ID      User
1       Joe
2       Jim
2       Mark
2       John
3       Dave

このクエリを実行しようとすると:

SELECT ID, GROUP_CONCAT(User) Users
FROM tableName
GROUP BY ID

次に、次のような結果が得られます。

ID         Users
1          Joe
2          Jim, Mark, John
3          Dave
于 2012-07-01T00:15:02.113 に答える
2

あなたが探しているのはGROUP_CONCAT集計関数です:

SELECT id, GROUP_CONCAT(user) FROM table GROUP BY id
于 2012-07-01T00:13:28.303 に答える