我有2张表vehicle_table和vehicle_group_table
我想通过在其公共组名列上加入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
但这似乎无效。
答案 0 :(得分:3)
UPDATE
V
SET
groupid = VG.groupid
FROM
vehicle_table V
JOIN
vehicle_group_table VG ON V.groupname = VG.groupname
您需要通过JOIN关联2个表。子查询等还有其他方法
注意:不在SET子句中的目标/目标列中使用别名,如其他答案中所建议的那样。它在SQL Server中失败不在SQL Server 2012中,所以我认为行为已更改
对于更复杂的设置:SQL update query using joins
答案 1 :(得分:0)
您可以在方案中应用以下语法:
更新TargetTable
FROM SourceTable
SET TargetTableField = SourceTable.SourceTableField
WHERE TargetTable.Field = TargetTable.Field;
答案 2 :(得分:0)
试试这个: -
Update vt
Set vt.groupiid = vgt.groupid
from vehicle_table vt
inner join vehicle_group_table vgt
on vt.groupname = vgt.groupname
答案 3 :(得分:0)
试试吧
UPDATE A SET A.groupid = B.groupid
FROM vehicle_table A INNER JOIN vehicle_group_table B ON
A.groupname = B.groupname
答案 4 :(得分:0)
试试这个:
UPDATE a set a.groupid =b.groupid
from vehicle_table a
inner join
vehicle_group_table b
on a.groupname = b.groupname