【问题标题】:Update a field based on the content of a field in another table根据另一个表中某个字段的内容更新一个字段
【发布时间】:2013-07-15 20:49:43
【问题描述】:

这些表描述含糊不清,无法保护我正在使用的数据。我提前道歉,但我必须限制细节。我正在使用 SQL Server 2008。

我有 2 个如下所示的表:

表 1

Facility, Person, ID, Group

表 2

ID, Type, Date

我想根据表 2 中的 Type 更新表 1 中的 Group,但仅限于与某个 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 语句返回所有正确的结果。我不确定出了什么问题。

感谢您的帮助。

【问题讨论】:

  • 你能举一个数据的例子吗?

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


【解决方案1】:

你很亲密。您只想在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%'

【讨论】:

  • 无论类型字段如何,此解决方案仍会更新所有记录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多