本帖最后由 dan 于 2020-3-7 20:29 编辑
语法1:
update table_name1 set (column_name1[,column_name2..])=(select column_name1[,column_name2..] from table_name2 [where ...]);语法2: update table_name1 set column_name1=(select column_name1 from table_name2 [where ...]),column_name2=(select column_name2 from table_name2 [where ...]); 对比语法1与2: 1、如果要同时更新多列,同时这个多列又是来自同个表,还是语法1比较好。 2、语法2的好处是比较直观,运算比较灵活。 举例: 前提:create table goods2 as select * from goods; update goods set gname=(select gname from goods2 where id=15) where id=9; 验证: select * form goods; |