根据另一个表中字段的内容更新字段

时间:2013-07-15 20:49:44

标签: sql database sql-server-2008 sql-update

这些表格描述模糊不清,以保护我正在使用的数据。我提前道歉但我必须保持细节有限。我正在使用SQL Server 2008。

我有两个看起来像这样的表:

表1

Facility, Person, ID, Group

表2

ID, Type, Date

我想根据表2中的Group更新表1中的Type,但仅限于与某个Facility匹配的位置。

我试过了:

UPDATE Table 1
SET Group = 'Big'
FROM Table 1 T1 
INNER JOIN Table 2 T2 on T1.ID = T2.ID
WHERE Type = 'B' AND Facility LIKE '%Game%'`

但结果是对Facility的所有字段进行了更新,例如'%Game%'。

SELECT语句返回所有正确的结果。我不确定是什么问题。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你非常接近。您只想使用update中的别名而不是表名:

UPDATE T1
    SET Group = 'Big'
    from Table 1 T1 INNER JOIN
         Table 2 T2
         on T1.ID = T2.ID
    WHERE Type = 'B' AND Facility like '%Game%'