タグ: 多対多

検索結果: 1件

article-thumbnail

検索した結果をテーブルにINSERTする方法

【概要】MySQLで検索した結果を別テーブルにINSERTする方法についてまとめます。このドキュメントをまとめるきっかけは、1対多のテーブル構成から多対多のテーブルに変更する必要があり、かつそのデータを多対多のテーブルにコピーする必要があった事です。【詳細】[概要]ここでは例としてhogesテーブルとfugasテーブルが存在し、新規で多対多用のhoges_fugasテーブルを作成します。fugaテーブルにはfugasテーブルの情報とhoge_idを保有しています。よって、fugasテーブルに存在する「id」と「hoge_id」を検索し、その結果をhoges_fugasテーブルに挿入します。[クエリ]INSERT INTO hoges_fugas (hoge_id, fuga_id, created, updated)SELECT id, hoge_id, created, updated FROM fugas;これでhogeとfugaの紐づきを持った中間テーブルに全ての値が入ります。※ タイムスタンプの考慮createdやupdatedといったタイムスタンプが必須のテーブルの場合を考慮して、ここではfugasテーブルのcreatedとupdatedの値をそのままhoges_fugasテーブルに格納しています。不要な場合は外して下さい。もしくは現在時刻を入れたい方は下記のクエリを実行して下さい。INSERT INTO hoges_fugas (hoge_id, fuga_id, created, updated)SELECT id, product_id, NOW() AS created, NOW() AS updated FROM comics;

カテゴリ: MySQL 2020-10-17 01:50:19