今天在做项目的时候忽然发现一个很容易忽视的UPDATE SET FROM 语句功能的问题.
在前几篇文章里面写了关于UPDATE DELETE 与LEFT JOIN之间的问题. 今天用UPDATE SET FROM 来对比一下.
直接写测试代码.
- CREATE TABLE a(col1 int,col2 varchar(20),col3 varchar(20))
- INSERT a (col1,col2,col3) VALUES(1,'a','b')
- INSERT a (col1,col2,col3) VALUES(2,'a1','b1')
- INSERT a (col1,col2,col3) VALUES(3,'a','b')
- CREATE TABLE b(col1 int,col2 varchar(20),col3 varchar(20))
- INSERT b (col1,col2,col3) VALUES(1,'c','b')
- INSERT b (col1,col2,col3) VALUES(2,'c1','b1')
- INSERT b (col1,col2,col3) VALUES(3,'c2','b')
- UPDATE a SET a.col2=b.col2 FROM b WHERE a.col1=b.col1
- SELECT * FROM a
- DROP TABLE a
- DROP TABLE b
结果:
col1,col2,col3
1 c b
2 c1 b1
3 c2 b
大家看得到的结果应该可以知道这段代码的作用,我就不罗嗦了~~...