事件:
写MySQL语句时,想要实现“使用某一张表中的字段值,更新另一张表中的字段值”的功能
两张表结构如下:
t1表:
t2表:
查询资料后,写出如下语句:
update t1
set aaa=t2.aaa
from t2
where bbb=t2.bbb;
执行后报错:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from t2
where bbb=t2.bbb' at line 3
在查询资料后发现,上述写法是SQL Server的写法,所以在MySQL中会报错
在MySQL中类似的写法为:
update t1,t2
set t1.aaa=t2.aaa
where t1.bbb=t2.bbb;
总结:
MySQL中,使用某一张表中的字段值,更新另一张表中的字段值的写法之一:
update tabel_dest,table_src
set tabel_dest.attr = table_src.attr
where condition;
SQL Server中,使用某一张表中的字段值,更新另一张表中的字段值的写法之一:
update tabel_dest
set attr = table_src.attr
from table_src
where condition;