Mysql 将一个表转换为两个新表
我正在尝试将数据从一个表移动到两个新表中,但我不确定如何以最好、最简单的方式实现这一点 我在时事通讯用户中有大约2000行,如下所示:Mysql 将一个表转换为两个新表,mysql,sql,select,export,Mysql,Sql,Select,Export,我正在尝试将数据从一个表移动到两个新表中,但我不确定如何以最好、最简单的方式实现这一点 我在时事通讯用户中有大约2000行,如下所示: userid company email memberofgroup field_member_uid field_user_id field_memberofgroup 在哪里 memberofgroup field_user_id 是一个整数,表示时事通讯\u邮件组。如果用户希望成为不同组的成员,这不是最好的方法。然后将有x行具有相同的电子邮件。2
userid company email memberofgroup
field_member_uid field_user_id field_memberofgroup
在哪里
memberofgroup
field_user_id
是一个整数,表示时事通讯\u邮件组。如果用户希望成为不同组的成员,这不是最好的方法。然后将有x行具有相同的电子邮件。2000个用户x 3或4个不同的组(我想到了什么??),因此我制作了两个新表
时事通讯\u看起来像这样的成员
userid email company
和另一份表格新闻稿(来自"大学"组)的成员(如下图所示):
userid company email memberofgroup
field_member_uid field_user_id field_memberofgroup
在哪里
memberofgroup
field_user_id
将包含来自时事通讯和会员的用户id
field_memberofgroup
将包含电子邮件组id.f.x
field_user_id field_memberofgroup
2 6
2 4
2 8
3 1
5 6
我如何才能以最佳方式导出然后导入它们,以便电子邮件不会在时事通讯\ U成员中重复我可能需要手动检查哪些用户是多个邮件组的成员
邮件组表:
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
解决方案分为几个步骤:
- Craete表格
通讯\U集团成员\U
CREATE TABLE newsletter_member_of_group(
field_member_uid INT PRIMARY KEY AUTO_INCREMENT,
field_user_id INT,
field_memberofgroup INT
);
INSERT INTO newsletter_member_of_group
SELECT NULL, userid, memberofgroup FROM newsletter_users;
ALTER TABLE newsletter_users RENAME TO newsletter_members;
ALTER TABLE newsletter_members DROP COLUMN memberofgroup;
请注意,字段\成员\ uid是自动递增的,它将帮助我们插入ID值
- 将
newsletter\u用户的数据复制到
newsletter\u组成员的
CREATE TABLE newsletter_member_of_group(
field_member_uid INT PRIMARY KEY AUTO_INCREMENT,
field_user_id INT,
field_memberofgroup INT
);
INSERT INTO newsletter_member_of_group
SELECT NULL, userid, memberofgroup FROM newsletter_users;
ALTER TABLE newsletter_users RENAME TO newsletter_members;
ALTER TABLE newsletter_members DROP COLUMN memberofgroup;
- 创建
表格。我们有两种变体:创建新表并复制数据,或者将会员通讯
重命名为newsletter\u用户
并删除newsletter\u成员
字段。我选择第二种变体memberofgroup
CREATE TABLE newsletter_member_of_group(
field_member_uid INT PRIMARY KEY AUTO_INCREMENT,
field_user_id INT,
field_memberofgroup INT
);
INSERT INTO newsletter_member_of_group
SELECT NULL, userid, memberofgroup FROM newsletter_users;
ALTER TABLE newsletter_users RENAME TO newsletter_members;
ALTER TABLE newsletter_members DROP COLUMN memberofgroup;
谢谢你!我没有想到仅仅改变现有的表!这样我会得到它完全一样!我正在重置ID并将其导入到新的memberofgroup表中!非常感谢。