1

これはかなり簡単な答えだと私はかなり確信していますが、答えは完全に私の心を滑らせています。

現在、次のようにフォーマットされているデータベーステーブルがあります。

event_id | elem_id | value
   1          1      Value 1
   1          2      Value 2
   2          1      Value 3
   2          2      Value 4

event_idとelem_idはどちらも未定の数値であり、無限の可能性があります。

たとえば、event_id 1に基づいてクエリを実行し、データを次のようにフォーマットする方法を教えてください。

event_id |    1    |     2
   1       Value 1    Value 2

elem_idがn以上の数値であることがわかっているため、50個のelem_idが存在する可能性がありますが、それでもその形式のデータが必要です。

私が言ったように、私はそれをそのように組み立てるためのクエリを理解することはできません。どんな助けでも大歓迎です。

4

1 に答える 1

1

次のことを試してください。

SELECT 
    `event_id`, 
    (SELECT t2.`value` FROM table t2 WHERE t2.`event_id` = t1.`event_id` AND t2.`elem_id` = 1), 
    (SELECT t3.`value` FROM table t3 WHERE t3.`event_id` = t1.`event_id` AND t3.`elem_id` = 2) 
FROM `table` t1 GROUP BY `event_id`;

また、別の方法を使用して、2つのセルでelem_idsと値をコンマ区切り形式で取得することもできます

SELECT `event_id`, GROUP_CONCAT(`elem_id`), GROUP_CONCAT(`value`) FROM `table` GROUP BY `event_id`;

次の構文でセパレータを変更できます。GROUP_CONCAT(field SEPARATOR '::')

于 2012-05-16T20:55:37.937 に答える