![](/img/trans.png)
[英]does result of ORDER BY is always same (SQL Server 2005,2008)?
[英]Update a single table based on data from multiple tables SQL Server 2005,2008
我需要使用表two
数据更新表one
。 表一和表二不与任何公共列相关。 表three
与表two
相关。
例如:表一(reg_det 表)
reg_det_id | reg_id | results
101 | 11 | 344
表二:(临时表)
venue | results
Anheim convention center | 355
表三(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 记录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.