sql >> データベース >  >> RDS >> Mysql

mysqlデータを他のテーブルにUNPIVOT

    UNPIVOTする必要があります あなたのデータ。 MySQLにはそれを行うための組み込み関数がないため、複数のクエリを使用する必要があります。

    INSERT INTO `monthlydata` (`id`, `year`, `monthName`, `stat_id`, `cat_id`, `data`) VALUES
    SELECT id, year, 'January', stat_id, cat_id, January
        FROM monthly WHERE monthName = 'January'
    UNION ALL 
    SELECT id, year, 'February', stat_id, cat_id, February
        FROM monthly WHERE monthName = 'February'
    UNION ALL 
    SELECT id, year, 'March', stat_id, cat_id, March
        FROM monthly WHERE monthName = 'March'
    .....
    

    ID ここの列は問題を引き起こす可能性があります。あなたがそれをどのように定義したかに依存します。自動生成される場合は、INSERTから削除して、自動生成させることができます。同じIDのすべての月の行があるため 、そのシナリオを処理する必要があります。




    1. MariaDB LAST_INSERT_ID()の説明

    2. DROPよりも優れたALTER

    3. PHPDoctrineORMを使用した複雑なWHERE句

    4. MySQL#1093-FROM句で更新するターゲットテーブル「giveaways」を指定できません