来自其他表的MySQL更新列

来自其他表的MySQL更新列,mysql,Mysql,我到处找,都被卡住了 New table = p8dzk_jbusinessdirectory_companies | Column = comercialName Old table = dir | Column = firm 我最终需要将所有数据从旧表移动到新表,大多数列名不同,但ID和“name”列记录匹配 我试过: UPDATE p8dzk_jbusinessdirectory_companies JOIN dir ON p8dzk_jbusinessdirectory_compani

我到处找,都被卡住了

New table = p8dzk_jbusinessdirectory_companies | Column = comercialName
Old table = dir | Column = firm
我最终需要将所有数据从旧表移动到新表,大多数列名不同,但ID和“name”列记录匹配

我试过:

UPDATE p8dzk_jbusinessdirectory_companies JOIN dir ON p8dzk_jbusinessdirectory_companies.comercialName = dir.firm
SET dir.firm = p8dzk_jbusinessdirectory_companies.comercialName;

Result 0 rows affected.
还尝试重命名旧表列名以匹配新列名,并使用已编辑的列名运行相同的查询-结果相同


请帮忙?

我得到了你的问题的解决方案,我用你的查询进行了测试,我也得到了同样的结果。 问题是,你加入了comercialName和公司的表格。将在两个表的列具有相同值的位置插入您的值。您正在更新已设置加入条件的同一列。您应该选择另一个字段来连接表,并选择另一个字段来更新值。 让我们来看一个我实现测试的示例

UPDATE `test` join `tbl_salon_cont_no` on `test`.`emp_name`=`tbl_salon_cont_no`.`emp_name` SET `tbl_salon_cont_no`.`emp_name`=`test`.`emp_name`
我得到了和你一样的结果。然后用另一个试了试,成功了

UPDATE `tbl_salon_cont_no` join `test` on `test`.`salon_id`=`tbl_salon_cont_no`.`salon_id` SET `tbl_salon_cont_no`.`emp_name`=`test`.`emp_name`
这里我有一行受影响

----------------------------------
最后,不能将相同的值更新到同一列、同一行

tbl_沙龙_cont_no:第一张图片

测试:第二个图像

解决办法是


更新新表,旧表设置新表。comercialName=old\u table.firm WHERE new\u table.name=old\u table.name

实际上,您需要的是在new newcol1、newcol2中插入新的newcol1、newcol2选择oldcoldcol1、oldCol2 FROM old也许我需要澄清一下,在新的db表中已经有相应的记录。上面的insert语句添加了新记录:但是,感谢您的回复。您是对的。如果你不以正确的方式陈述你的答案,那么我们就无法帮助你所需要的方式请原谅我的无知。。但是,您可以使用表/列old/new或my Value重复工作查询吗?我完全不知道什么是什么…现在看看。我已经更新了我的答案。对字段的值进行一些更改,您将看到结果1/2,等等。行更新成功。非常感谢!我仍然没有得到它,但我最终找到了一些我需要的东西:更新新表,旧表设置新表。comercialName=旧表。firm WHERE new_table.name=旧表。name