0

我有 2 个表 vehicle_table 和 vehicle_group_table

  • 车辆表 --> 有列 --> 车辆标识、组名、组标识
  • vehicle_group_table --> 有列 --> groupid,groupname

我想通过在其公共组名列上加入 vehicle_group_table 来更新我的 vehicle_table 的 groupid 列

UPDATE vehicle_table 
    SET vehicle_table.groupid = vehicle_group_table.groupid
    WHERE vehicle_table.groupname = vehicle_group_table.groupname

但这似乎行不通。

4

5 回答 5

3
UPDATE
  V
SET
  groupid = VG.groupid
FROM
  vehicle_table V
  JOIN
  vehicle_group_table VG ON V.groupname = VG.groupname

您需要通过 JOIN 关联这两个表。子查询等还有其他方法

注意:不要按照其他答案中的建议在 SET 子句的目标/目标列中使用别名。它在 SQL Server 中失败 而不是在 SQL Server 2012 中,所以我认为行为改变了

对于更复杂的设置:使用连接的 SQL 更新查询

于 2013-05-09T11:39:27.757 回答
0

您可以在您的场景中应用以下语法:

更新目标表

从源表

SET TargetTableField = SourceTable.SourceTableField

WHERE TargetTable.Field = TargetTable.Field;

于 2013-05-09T11:39:11.027 回答
0

尝试这个 :-

Update vt
Set vt.groupiid = vgt.groupid
from vehicle_table vt
inner join vehicle_group_table vgt
on vt.groupname = vgt.groupname
于 2013-05-09T11:39:21.963 回答
0

试试看

    UPDATE A SET A.groupid = B.groupid 
    FROM vehicle_table A INNER JOIN vehicle_group_table B ON 
    A.groupname = B.groupname
于 2013-05-09T11:40:43.937 回答
0

尝试这个 :

UPDATE a set a.groupid =b.groupid

from vehicle_table a
inner join 
vehicle_group_table b

on a.groupname = b.groupname
于 2013-05-09T11:42:45.633 回答