2013-05-09 48 views
0

我有2代表的表的列vehicle_table和vehicle_group_table更新使用同一個表的另一列

  • vehicle_table - >中的列 - > vehicleid,組名,組識別符號
  • vehicle_group_table - >有列 - > GROUPID,組名

我想通過加入其共同的組名列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

燦你詳細說明'但這似乎不工作'?什麼錯誤信息? – Patashu 2013-05-09 11:39:20

回答

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 update query using joins

+0

非常感謝@gbn .. – 2013-05-10 03:26:05

0

您可以將以下語法在您的方案:

UPDATE TargetTable

FROM sourceTable會

SET TargetTableField = SourceTable.SourceTableField

WHERE TargetTable.Field = TargetTable.Field;

+1

這不是SQL Server語法 – gbn 2013-05-09 11:41:21

0

試試這個: -

Update vt 
Set vt.groupiid = vgt.groupid 
from vehicle_table vt 
inner join vehicle_group_table vgt 
on vt.groupname = vgt.groupname 
0

試試吧

UPDATE A SET A.groupid = B.groupid 
    FROM vehicle_table A INNER JOIN vehicle_group_table B ON 
    A.groupname = B.groupname 
0

試試這個:

UPDATE a set a.groupid =b.groupid 

from vehicle_table a 
inner join 
vehicle_group_table b 

on a.groupname = b.groupname 
相關問題