PHP/MySQL を使用しており、既存のテーブルから新しいテーブルを作成する必要があります。ここに問題があります:
表 1 :
photo_id email name_to creation_date link
1 foo1@bar.com paul 2012-11-21 link1.com
2 foo2@bar.com mark 2012-11-22 link2.com
3 foo1@bar.com alex 2012-11-23 link3.com
4 foo1@bar.com saul 2012-11-25 link4.com
5 foo1@bar.com john 2012-11-26 link5.com
6 foo2@bar.com math 2012-11-27 link6.com
7 foo3@bar.com fred 2012-11-28 link7.com
Table1では、電子メールは一意ではなく、数回繰り返すことができます。各リンクは異なります。このデータを使用して、1 つの電子メールのエントリがさらにある場合 (その場合、最新の 3 つのエントリのデータが必要な場合)、最大 3 つのリンクを持つ電子メールが一意である新しいテーブルを作成する必要があります。
したがって、この場合、Table2は次のようになります。
email link1 creation_date1 name_to1 link2 creation_date2 name_to2 link3 creation_date3 name_to3
foo1@bar.com link5.com 2012-11-26 john link4.com 2012-11-25 saul link3.com 2012-11-23 alex
foo2@bar.com link6.com 2012-11-27 math link2.com 2012-11-22 mark
foo3@bar.com link7.com 2012-11-28 fred
私は GROUP_CONCAT 機能を知っていますが、リンクがすべて同じ列にあるため、ここで実際に必要なものではありません。SELECT * FROM table1 を作成し、結果を PHP 配列に処理してから、 Table2を作成するか、一意の MySQL クエリでうまくいくのでしょうか? または、複数の MySQL テーブルを作成しますか?
Table1は 1,000 万行を超えています。
アドバイスをいただければ幸いです。
ありがとう。