代码之家  ›  专栏  ›  技术社区  ›  Scott

从另一列更新列距离两个表

  •  2
  • Scott  · 技术社区  · 14 年前

    SQL还不太好,但我正在学习。

    所以我有三张桌子:

    tblone(ID,类型) tbltemp1(名称、类型) tbltemp2(ID,名称)

    基本上,我想更新tblone,它的“id”在哪里与tbltemp2匹配,但除此之外,它还将从“name”匹配的tbltemp1中获取其“type”。

    有人能帮忙吗?

    3 回复  |  直到 12 年前
        1
  •  2
  •   Victor Nicollet    14 年前

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

    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

        2
  •  0
  •   Leniel Maccaferri    14 年前
    UPDATE tblOne
    SET
    tblOne.Type = tblTemp1.Type
    WHERE
    tblOne.Id = tblTemp2.Id
    AND
    tblTemp1.Name = tblTemp2.Name;
    
        3
  •  0
  •   Gidil Oliver    12 年前
    UPDATE TBLONE 
    SET    TBLONE.TYPE = (SELECT TBLTEMP1.TYPE 
                          FROM   TBLTEMP1 
                                 INNER JOIN TBLTEMP2 
                                         ON TBLTEMP1.NAME = TBLTEMP2.NAME 
                          WHERE  TBLONE.ID = TBLTEMP2.ID); 
    

    FF我们只需要更新满足一个条件
    然后将这部分添加到该语句中 WHERE条件//WHERE子句是可选的