0

1 つのテーブルから 2 つの新しいテーブルにデータを移動しようとしていますが、最善かつ最も簡単な方法でこれを行う方法がわかりません。

私は次のように、newsletter_users に約 2000 行あります。

userid company email memberofgroup

どこ

memberofgroup 

ニュースレター_メールグループを参照する整数です。ユーザーが別のグループのメンバーになりたい場合、これは最善の方法ではありません。次に、同じ電子メールの x 行があります。2000 人のユーザー x 3 つまたは 4 つの異なるグループ (私は何を考えましたか??) したがって、2 つの新しいテーブルを作成しました。

このように見えるnewsletter_members

userid email company

および次のような別のテーブルnewsletter_member_of_group:

field_member_uid field_user_id field_memberofgroup

どこ

field_user_id

には、newsletter_members からのユーザー ID が含まれ、

field_memberofgroup 

メールグループ ID が含まれます。FX

field_user_id  field_memberofgroup 
    2                 6
    2                 4
    2                 8
    3                 1
    5                 6

Newsletter_members で電子メールが重複しないように、それらをエクスポートしてからインポートするにはどうすればよいですか? - どのユーザーが複数のメールグループのメンバーであるかを手動で確認する必要がある場合があります。

メールグループ表:

1   Forhandlere 
2   Arkitekter og byggerådgivere   
3   Typehusfabrikanter  
4   Byggeentreprenører 
5   Murermestre 
6   Tømrermestre   
7   Tagdækkere 
8   Boligforeninger/Ejendomsselskaber   
9   Bygge-interesserede 
10  Tyske modtagere 
11  Landskabsarkitekter 
12  Norske arkitekter   
13  Svenske arkitekter  
14  Norske forhandlere  
15  Svenske forhandlere 
16  Brancherelaterede   
17  Svenske ansatte 
18  Norske ansatte  
19  Beijer Sverige  
4

1 に答える 1

1

いくつかのステップでの解決策:

  • クレエテのテーブルnewsletter_member_of_group

脚本:

 CREATE TABLE newsletter_member_of_group(
  field_member_uid INT PRIMARY KEY AUTO_INCREMENT,
  field_user_id INT,
  field_memberofgroup INT
);

field_member_uid は AUTO_INCREMENT であることに注意してください。ID 値を挿入するのに役立ちます。

  • newsletter_usersからにデータをコピーnewsletter_member_of_groupします。

脚本:

INSERT INTO newsletter_member_of_group
  SELECT NULL, userid, memberofgroup FROM newsletter_users;
  • テーブルを作成し newsletter_membersます。新しいテーブルを作成してデータをコピーする方法と、名前newsletter_usersを変更してフィールドnewsletter_membersを削除する方法の 2 つがありmemberofgroupます。私は 2 番目のバリアントを選択します。

脚本:

ALTER TABLE newsletter_users RENAME TO newsletter_members;
ALTER TABLE newsletter_members DROP COLUMN memberofgroup;
于 2012-11-02T11:28:31.343 に答える