こんにちは私は、繰り返しデータを持つMySQLテーブルでいくつかの非正規化を行う必要があります。反復するmysqlデータを非正規化する方法は?
私の「資料」の表では、この形式では現在、次のとおりです。
Publications Source Table
| title | author
--------------------------------------------
| my paper | michael
| my paper | bill
| my paper | jill
| other paper | tom
| other paper | amy
| third paper | ben
| third paper | sophie
私はこの形式に変更する必要があります。今すぐ
Publications Destination Table
| title | author | author2 | author 3
|-----------------------------------------------------------------
| my paper | michael | bill | jill
| other paper | tom | amy |
| third paper | ben | sophie |
、ちょうどあなたの情報のために私はので、これを行う必要があります私は最終的にCSVファイルを入手できるので、古いシステムからこの形式のCSVファイルを必要とする新しいシステムにデータをエクスポートすることができます。
また、テーブルには他の多くのフィールドがあり、ソーステーブルには約60,000の行がありますが、ユニークなタイトルは約15,000個だけです。ソーステーブルには、著者ごとに1つの行があります。宛先では、タイトルは一意の識別子になります。一意の出版タイトルごとに1行が必要です。また、もし問題がより簡単になるならば、最も多くの著者がどの出版物にあるのかを事前に計算することができます。
MySQLでこれを行うにはどうすればよいですか?ありがとう
あなたのGoogle検索文字列は「mysqlピボットクエリ」 –
上記の最初のテーブルデザインは、作成したいものよりも優れていますが、依然として作業が必要です。私は、出版物の表にタイトルと他の情報が含まれているだけで、出版物には1つの価値しか持たせることができません。次に、パブリケーションが複数の値を持つことができる情報のそれぞれのための別個のテーブル。 – CptMisery
私が手に入れようとしている形式は、単に他の誰かがすでにインポートプログラムを書いている形式ではありません。データは高度に正規化されたエンタープライズデータベースシステムになりますが、ベンダーはこの特定のCSV形式を使用してデータをインポートするオプションを提供しています。 –