如何连接两个表中的数据并将结果插入到新表中?

Posted

技术标签:

【中文标题】如何连接两个表中的数据并将结果插入到新表中?【英文标题】:How can I join data from two tables and insert the result into a new table? 【发布时间】:2021-01-01 09:38:50 【问题描述】:

我的产品有一张桌子,我的密钥是Pid

每个产品可以有几种模式,在TB_Types表中注册。

did 是标识列(键),pid 是产品表的外键:

did pid name
1 1 type1
2 1 type2
3 2 type3
4 2 type4

现在我们有一个表,其中每个产品可以有不同的编号表名称:TB_Count

如下表所示:

cid 是标识列(键),pid 是产品表的外键

cid pid count
1 1 25
2 1 50
3 1 100
6 2 1000
7 2 5000
8 2 10000

最初,客户希望每种产品具有不同的类型和编号,但现在计数表必须更改如下,并且每种产品的计数必须针对每种类型。

我按原样创建了一个表格。

新表名:tb_newcount

id 是标识列(键),didTB_Types 表的外键。

id did count
1 1 25
2 1 50
3 1 100
4 2 25
5 2 50
6 2 100
7 3 5000
8 3 10000
9 3 15000
10 4 5000
11 4 10000
12 4 15000

如果我能按照说的把信息移到新表中,问题就迎刃而解了。

我希望我已经说出了我的意思。

注:产品数量接近5000种,种类数2000种,计数约2000条记录。

谢谢

【问题讨论】:

【参考方案1】:

你需要INNER JOIN如下:

INSERT INTO tb_newcount (did, count)
select did, count
  from TB_Types t join TB_Count c on c.pid = t.pid

【讨论】:

以上是关于如何连接两个表中的数据并将结果插入到新表中?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL查询结果复制到新表(更新插入)

如何比较两个表的列并将值插入到基于 SQL Server 中存储过程中的比较的新表中

如何向表中插入数据以及如何更新删除表中的数据

新建表需要原表的数据,mysql 如何把查询到的结果插入到新表中

比较两个表寻找差距,将它们附加到新表中

oracle中,查询结果去除重复列,插入到新表中