日付 ASC で並べ替えられたデータを出力する VIEW (多数の結合) があります。期待どおりに動作します。
次のような出力:
ID date tag1 other_data
1 25-03-2011 blue fff <=
1 26-03-2011 red ggg
1 27-03-2011 pink yyy
2 25-03-2011 red yyy <=
2 26-03-2011 orange rrr
GROUP BY を適用するとID
。その他の列については、MySQL は各 ID の最初に見つかった行を出力します。これは te docs のどこかで読みました。
SELECT * FROM `myVIEW`
GROUP BY `ID`
ID date tag1 other_data
1 25-03-2011 blue fff <=
2 25-03-2011 red yyy <=
GROUP_CONCAT( tags1
) を追加しましょう
SELECT *,CONCAT_GROUP(`tag1`) AS `tags`
FROM `myVIEW`
GROUP BY `ID`
CONCAT_GROUP を適用したため、結果が奇妙になります。私は期待していました:
ID date tag1 other_data tags
1 25-03-2011 blue fff blue,red,pink
2 25-03-2011 red yyy red,orange
クエリは次のように返されます。
ID date tag1 other_data tags
1 26-03-2011 red ggg blue,red,pink
2 25-03-2011 red yyy red,orange
GROUP_CONCAT が VIEW 順序を保持しなくなったようです。これは正常ですか?