UPDATE列距离另一列两个表

时间:2010-07-27 12:49:06

标签: sql sql-server-2005 tsql

还没有那么好的SQL,但我正在学习。

所以我有3张桌子:

tblOne(Id,Type) tblTemp1(名称,类型) tblTemp2(Id,Name)

基本上,我想更新tblOne,其中'Id'与tblTemp2的匹配位置,但是也可以从tblTemp1获取'Type',其中'Name'匹配。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

我建议在更新语句中使用连接。

UPDATE tblOne 
SET tblOne.Type = tblTemp1.Type
FROM tblTemp2
INNER JOIN tblTemp1 ON tblTemp1.Name = tblTemp2.Name
WHERE tblOne.Id = tblTemp2.Id

http://msdn.microsoft.com/en-us/library/aa260662%28SQL.80%29.aspx

答案 1 :(得分:0)

UPDATE tblOne
SET
tblOne.Type = tblTemp1.Type
WHERE
tblOne.Id = tblTemp2.Id
AND
tblTemp1.Name = tblTemp2.Name;

答案 2 :(得分:0)

UPDATE TBLONE 
SET    TBLONE.TYPE = (SELECT TBLTEMP1.TYPE 
                      FROM   TBLTEMP1 
                             INNER JOIN TBLTEMP2 
                                     ON TBLTEMP1.NAME = TBLTEMP2.NAME 
                      WHERE  TBLONE.ID = TBLTEMP2.ID); 

如果我们需要更新只满足条件
然后为该语句添加此部分 和where // where子句是可选的