我需要更新表one
使用从表中的数据two
。 表中的一个和两个不被任何公共列(多个)的关系。 表three
是与表two
。
例如:表一(reg_det表)
reg_det_id | reg_id | results
101 | 11 | 344
表2:(临时表)
venue | results
Anheim convention center | 355
表3(regmaster-TBL)
reg_id| venue
11 | Anaheim convention center
我需要使用从表中两个数据表中的一个更新的结果列。 但是,表一和二是不相关的。 表二,三和表一和三,你可以看到上面有关系。 任何人都可以请提出任何意见! 我需要的结果值在表中的一个355,这数据是从表2的到来,但是这两个都是不相关的,并且可以使用三个表有关。 很抱歉,如果它是混乱!
非常坦率的:
UPDATE T1
SET result = t2.results
FROM [table one] T1
INNER JOIN [table three] t3
on t1.reg_id = t3.reg_id
INNER JOIN [table two] T2
on t2.venue = t3.venue
几乎一个问题,而不是答案。 :)
你不能用一个隐含的内部联接?
UPDATE rd
SET rd.results = tt.results
FROM reg_det rd, regmaster rm, temptable tt
WHERE rm.reg_id = rd.reg_id
AND rm.venue = tt.venue;
我觉得更容易阅读,这句法在工作SELECT
语句,用相同的意思明确的内连接。
试试这个:
UPDATE rd
SET rd.results = t.results
FROM reg_det rd
JOIN regmaster rm ON rm.reg_id = rd.reg_id
JOIN temptable t ON t.venue = rm.venue
WHERE t.results = 355
我添加了一个WHERE子句,因为否则它会更新在regmaster和不是Temptable比赛所有reg_det记录。
文章来源: Update a single table based on data from multiple tables SQL Server 2005,2008