0

我正在尝试将数据从一个表移动到两个新表中,但我不确定如何以最好和最简单的方式做到这一点。

我在 newsletter_users 中有大约 2000 行,如下所示:

userid company email memberofgroup

在哪里

memberofgroup 

是一个表示 newsletter_mailgroups 的整数。如果用户想成为不同组的成员,这不是最好的方法。然后将有 x 行具有相同的电子邮件。2000 个用户 x 3 或 4 个不同的组(我想到了什么??)因此我制作了两个新表

看起来像这样的 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。外汇

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_usersnewsletter_member_of_group

脚本:

INSERT INTO newsletter_member_of_group
  SELECT NULL, userid, memberofgroup FROM newsletter_users;
  • 创建 newsletter_members表。我们有两种变体:创建新表并复制数据,或重命名newsletter_usersnewsletter_members删除memberofgroup字段。我选择第二种变体。

脚本:

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