下面是这样一个例子:
两个表a、b,想使b中的memo字段值等于a表中对应id的name值
表a:
表b:
网上很多sql语句写法报错,正确的方式经过本人测试,有以下两种:
一:
update a, b
set b.clientName = a.name
where a.id = b.id;
set b.clientName = a.name
where a.id = b.id;
二:
在mysql中,不能直接使用set select的结果,必须使用inner join:
update a inner join (select yy from b) c on a.id =b.id set a.xx = c.yy
实例:
UPDATE rent_enterprise a
INNER JOIN (
SELECT
USERNAME,ENTERPRISE_id
FROM
sys_user b
) c ON a.ENTERPRISE_id = c.ENTERPRISE_id
SET a.ENTERPRISE_USERNAME = c.USERNAME
INNER JOIN (
SELECT
USERNAME,ENTERPRISE_id
FROM
sys_user b
) c ON a.ENTERPRISE_id = c.ENTERPRISE_id
SET a.ENTERPRISE_USERNAME = c.USERNAME