2015-09-11 132 views
-2

我有兩個幾乎相同的表。 需要更新TABLE_03每Postal時,它的NULL 有沒有ID或主鍵使用,因此我與NameLink,並PhoneNum /(在TABLE_ALL PhoneSQL-Server 2014.更新連接兩個表和使用表別名

試過SQL連接這些:

UPDATE TABLE_03 a 
    join TABLE_ALL b 
    ON a.Link = b.Link, 
     a.Name = b.Name, 
     a.PhoneNum = b.Phone 
    SET a.Postal = b.PostalCode 
    WHERE a.Postal IS NULL; 

SQL Server爲錯誤

Incorrect syntax near 'a'. 

沒有別名:

UPDATE TABLE_03 
    join TABLE_ALL 
    ON TABLE_03.Link = TABLE_ALL.Link, 
     TABLE_03.Name = TABLE_ALL.Name, 
     TABLE_03.PhoneNum = TABLE_ALL.Phone 
    SET TABLE_03.Postal = TABLE_ALL.PostalCode 
    WHERE TABLE_03.Postal IS NULL; 

給出錯誤:

Incorrect syntax near the keyword 'join'. 
+0

請檢查該 http://stackoverflow.com/questions/ 2044467/how-to-update-two-tables-in-one-statement-in-sql-server-2005 – iwan

+1

[Update with two tables?]可能出現重複? (http://stackoverflow.com/questions/1068447/update-with-two-tables) –

回答

3

你的語法是錯誤的,主要是JOIN ON條款。它應該像下面使用AND操作

UPDATE TABLE_03 a 
    join TABLE_ALL b 
    ON a.Link = b.Link AND 
     a.Name = b.Name AND 
     a.PhoneNum = b.Phone 
    SET a.Postal = b.PostalCode 
    WHERE a.Postal IS NULL; 

通過適當SQL Server語法

UPDATE a 
SET a.Postal = b.PostalCode 
FROM TABLE_03 a 
    join TABLE_ALL b 
    ON a.Link = b.Link AND 
     a.Name = b.Name AND 
     a.PhoneNum = b.Phone 
    WHERE a.Postal IS NULL; 
0

試試這個

 UPDATE TABLE_03 
SET TABLE_03.Postal = TABLE_ALL.PostalCode 
from TABLE_ALL 
where TABLE_03.Link = TABLE_ALL.Link AND 
    TABLE_03.Name = TABLE_ALL.NAME AND 
    TABLE_03.PhoneNum = TABLE_ALL.Phone and 

    TABLE_03.Postal IS NULL; 
0

試試這個:

UPDATE a 
    SET a.Postal = b.PostalCode 
    FROM TABLE_03 a 
    join TABLE_ALL b 
    ON a.Link = b.Link, 
     a.Name = b.Name, 
     a.PhoneNum = b.Phone 
    WHERE a.Postal IS NULL;