更新表的某个字段为关联表的某字段值
MySQL
UPDATE 表1 s
INNER JOIN 表2 u ON u.关联字段= s.关联字段
SET s.字段 = u.字段
WHERE 条件
SQL server
UPDATE s
SET s.字段= u.字段
FROM 表1 s INNER JOIN 表2 u ON u.关联字段= s.关联字段
WHERE 条件
Oracle
merge into 表1 s
using (SELECT u.关联字段, u.字段 FROM 表2 u) t
ON (s.关联字段 = t.关联字段)
WHEN matched THEN
UPDATE SET s.字段= t.字段
WHERE 条件
merge into的作用就是解决用B表更新A表数据,如果A表中没有,则把B表的数据插入A表插入数据,如果该表已有该数据则更新,反之新增数据。
when matched then:目标表和源表匹配时执行;
when not matched then:目标表和源表不匹配时执行