2015-02-09 61 views
1

我需要我的代碼根據兩個條件設置列的值:同一個表中不同列的值和不同表中列的值。有沒有辦法使用where語句來查看不同表中的條件?其中有條件的語句是多個表

下面是僞代碼,不工作,但捕獲了我想要做的。

UPDATE Table1 
SET CustomerStatus_2003 = 'New' 
FROM Table1, Table2 
WHERE Table1.Column1 = 'New' 
AND Table2.Column1 = '2003' 
AND Table1.Column2= Table2.Column2 

感謝您的幫助!

+0

我的建議是建立一個SELECT語句,只檢索你想要更新的行。選擇該選項可以提取進行更新所需的所有數據。然後將SELECT更改爲UPDATE。通過這種方式,您可以確保您的JOIN和WHERE子句按照您認爲自己的方式工作,然後再執行更新。 – SteveB 2015-02-09 17:44:34

回答

1

當您在語句中使用多個表時,您應該始終別名您的表並使用JOIN。這裏是一些代碼,你正在尋找

UPDATE t 
SET myColumn = 'New' 
FROM MyTable t 
    JOIN OtherTable t2 ON t.Column = t2.Column 
WHERE t.SomeCondition 
    AND t2.SomeOtherCondition