更新不同查询的结果列

问题描述:

我有两个表(车辆和成本),我已经在成本表 中引入了一个部门列,所以我想更新车辆表中部门的成本表中的部门列更新不同查询的结果列

我的车表是这样的:

vehicle Department 
S526 424 
D097 402 
D113 403 
D111 430 
C005 400 
C003 403 
C002 403 

和成本tavle是这样的:

car  Dept 
D097  
C005  
D113  
D113  
D111  
C005  
D113  
C005  
C003  
C002  
C005  
S526  
C002  
C002 

如何更新成本表有相关部门

我都试过,但它不工作:

update costs as h, 
(
    select v.vid as 'car', 
    v.department as 'department', 
    h.VID as 'newcar' 
    from vehicles AS v 
    join costs as h on v.vid = h.VID and v.costcentre = h.CostCenter 
) as t2 
set h.department = t2.department 
+0

为什么不只是内加入他们的行列? SELECT * FROM vehicle v INNER JOIN cost c ON c.car = v.id; – Kristian

+0

告诉我如何请更新所有车辆与同一部门 – Rhynix

+0

因为数据可以从我以前的评论内部联接追溯,我不认为插入他们会有一个好主意。它只会创建冗余数据。 – Kristian

update costs h,vehicles v 
set h.Dept = v.Department 
where v.vehicle = h.car; 
+0

就像一个魅力 – Rhynix