2015-02-09 55 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