MySQL-将字段值设置为另一个表中的值

MySQL-将字段值设置为另一个表中的值,mysql,sql,join,where,Mysql,Sql,Join,Where,我想知道哪个查询语句是从表中获取值并以类似于使用WHERE子句的方式将它们插入另一个表的正确查询语句 范例- 表1包含以下字段: 注册表号-名称 表2包含以下字段: id-firstname-lastname 查询必须设置Table1.name=Table2.firstname,其中Table1.registrynumber和Table2.id在Table1.name和Table2.firstname的行中具有相同的值 我希望我说得够清楚了。 问候。您是在更新还是插入?从你的回答中还不清楚,我能

我想知道哪个查询语句是从表中获取值并以类似于使用WHERE子句的方式将它们插入另一个表的正确查询语句

范例-

表1包含以下字段: 注册表号-名称

表2包含以下字段: id-firstname-lastname

查询必须设置Table1.name=Table2.firstname,其中Table1.registrynumber和Table2.id在Table1.name和Table2.firstname的行中具有相同的值

我希望我说得够清楚了。
问候。

您是在更新还是插入?从你的回答中还不清楚,我能想到的最好办法是从表1中删除name字段。数据库规范化的一部分是只存储一次每段数据。您确定它会选择与“tb2.firstname”同一行中的正确“tb2.id”吗
UPDATE Table2 tb2
SET tb2.firstname = ( SELECT name FROM Table1 WHERE registryname = tb2.id )
INSERT INTO Table1 (registrynumber, name)
SELECT id, firstname FROM Table2;