我正在尝试将数据从一个表移动到两个新表中,但我不确定如何以最好和最简单的方式执行此操作。
我在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和
的用户IDfield_memberofgroup
将包含电子邮件组ID。 F.X。
field_user_id field_memberofgroup
2 6
2 4
2 8
3 1
5 6
如何以最佳方式导出然后导入它们,以便电子邮件不会在newsletter_members中重复? - 我可能需要进行手动检查,以查看哪些用户是多个邮件组的成员。
Mailgroups表:
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
答案 0 :(得分: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
并删除memberofgroup
字段。我选择第二种变体。脚本:
ALTER TABLE newsletter_users RENAME TO newsletter_members;
ALTER TABLE newsletter_members DROP COLUMN memberofgroup;