表1 :(有400条记录)
id category_title subcategory
----------------------------------------
1 title1 subTitle1.1
2 title1 subTitle1.2
3 title2 subTitle2.1
4 title2 subTitle2.2
5 title2 subTitle2.3
为了规范化这个表我想创建两个表(Table2,Table3)以及它们之间的关系而不是上面的表。 (删除Table1并创建Table2和Table3),如下所示:
表2:
id category_title
---------------
1 title1
2 title2
3 title3
4 title4
表3:
id subcategory table2_id(FK)
----------------------------------------
1 title1 1
2 title2 1
3 title3 2
4 title4 1
5 title5 2
我可以将Table1.category_title转移到Table2.category_title以查询此查询:
insert into Table2(category_title) (select distinct category_title from Tabe1)
并可以使用此查询将Table1.subcategory传输到Table3.subcategory:
insert into Table3(subcategory) (select subcategory from Tabe1)
但谁可以在表2中填写具有正确关系的Table3.table2_id(FK)? (如果我想用手做这个,我应该执行至少200个查询,我不想这样做)
任何人都可以给我一个查询或其他方式在这些表之间传输数据? (为我的英文道歉) 提前致谢
答案 0 :(得分:2)
您可以使用这两个INSERT查询,第二个使用JOIN:
INSERT INTO table2 (category_title)
SELECT DISTINCT category_title FROM table1;
INSERT INTO table3 (subcategory, table2_id)
SELECT DISTINCT subcategory, table2.id
FROM
table1 INNER JOIN table2 ON table1.category_title=table2.category_title;
请参阅小提琴here。
答案 1 :(得分:0)
insert into table3 (subcategory, id) select distinct subcategory, id from table1
不确定subTitle1.1
意味着什么,如果每个都不同,你必须在这个字段上放置一些文本解析功能。