0

我有一个带有客户 ID 列的小表(145 行)。我正在尝试使用此表来确定要更新具有 ~85000 行的另一个表的哪些行。我只想更新匹配的 145 行。

当我执行此查询时,我会看到我希望更新的所有行(missing_names 是 145 行表):

SELECT *
FROM MEMBER M
JOIN missing_names MN
ON MN.ID = M.ID
WHERE MN.ID IS NOT NULL

我正在尝试从不同的表中提取数据并进行如下更新:

UPDATE MEMBER
SET LastName = R.Client_Last, 
FirstName = R.Client_First, 
Gender = 
FROM Roster R
JOIN missing_names MN
ON MN.ID = R.Client_ID
WHERE MN.ID IS NOT NULL

当我运行此更新语句时,我看到具有相同名字和姓氏的不同 ID。名册表具有客户端 ID 的正确名称。我以为这种类型的更新语句只会从名册表中的匹配行更新成员表中的匹配行?

4

1 回答 1

1

在更新语句的 FROM 子句中,您根本没有引用 MEMBER。这是为什么?我什至不知道那是什么意思。这只是交叉连接吗?

原来是这样。这会导致所有行都被更新。

于 2013-10-10T19:26:56.710 回答