SQL Server - Update Table By JOIN Table

最近寫了一個題目,表示要更新Table 1某兩欄的資料,而資料來源為Table 2,此時腦海中浮出

UPDATE指令,即UPDATE TABLE1 SET COLUMN1 = 'value1', ... WHERE COLUMN = 'ID1'

的基本更新語法,原則上以前都沒有想到要利用其他TABLE來更新,只能說自己太LOW了..

SQL語法使用環境為:SQL Server 2008 R2

首先語法需做一些調整,如下:

UPDATE
    TABLE1 SET T1.COLUMN1 = T2.COLUMN1
FROM
    TABLE1 T1 INNER JOIN TABLE2 T2
ON 
    T1.COLUMN2 = T2.COLUMN2
WHERE 
    T1.COLUMN3 = 'value'

從這個語法可以得到,T1.COLUMN1的內容由T2.COLUMN1給取代

且需符合兩個TABLE的COLUMN2是相等的

而前提TABLE1要去比較的資料列還需要過濾T1.COLUMN3 = 'value'的才會被選取囉!

一般來說TABLE2的資料選定還有可能會再跟其它的TABLE JOIN,因此語法可能還會

再複雜一點!

基本使用大致上是這樣,在這邊記錄一下,以避免以後忘記ORZ...

留言