查询语句,用一张表的数据将另一张表中的数据替换掉,被替换表中的数据不变

替换的表数据

图片说明

需要被替换的表数据

图片说明

替换comEan相同的表数据,其中字段都是对应的
被替换的表数据实际上不更改的,只是查询出来后表数据显示的是替换的表数据

这样写 需要更新多少个字段 就自己照着写就行了

SET SQL_SAFE_UPDATES = 0;
UPDATE table_a a
SET
name = (CASE id
WHEN
id
THEN
(SELECT
name
FROM
table_b
WHERE
id = a.id)
END),
nick_name = (CASE id
WHEN
id
THEN
(SELECT
other_nick_name
FROM
table_b
WHERE
id = a.id)
END)
where id in (select id from table_b);

这种方式能保证原来的数据在库中的顺序 

如果不考虑可以直接先删除掉相同的 再复制过去就行了