今天在做項目的時候忽然發現一個很容易忽視的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
大家看得到的結果應該可以知道這段代碼的作用,我就不羅嗦了~~...