首页 > 解决方案 > MySQL:根据匹配的 id 将数据从一个表复制到另一个表时出现问题

问题描述

我需要根据匹配字段将现有数据从一个表复制到另一个表。这不是批发专栏的骗局。

它应该如何工作:如果idinasset匹配assetIDin ,则将表中的字段复制到资产表中的字段report中。这是我基于MySQL 文档构建的:repEmailreportrep_emailinsert...select

INSERT INTO asset (rep_email)
  SELECT report.repEmail
  FROM report WHERE report.assetID = asset.id

这抛出:Error in query (1054): Unknown column 'asset.id' in 'where clause'

我也试过这个:

where safety_report.eNumber = asset_roster.id
insert into asset_roster (building_rep_email) 
select bldgRepEmail from safety_report;

但它在第一行出错。:(

我不确定如何修改它以消除错误并正确写入值。看起来应该是一个简单的操作...请指教

注意:我没有对表格的管理员访问权限。这种看似重复的原因与对不同表的权限有关。即使没有,我还是需要写外键......

标签: mysqlcopy

解决方案


我认为您想使用以下列rep_email中的asset值更新repEmailreport

UPDATE asset a
INNER JOIN report r ON r.assetID = a.id
SET a.rep_email = r.repEmail

推荐阅读