如何从多键表更新T-SQL中的多列
从另一个表值更新表时遇到问题 假设我有: 表A(键A、键B、字段A、字段B) 表B(键A、键B、字段A、字段B、字段C) 我想更新表A中的行,这些行将表B中的值与表B中的值进行比较 我试着这样做:如何从多键表更新T-SQL中的多列,sql,sql-server,tsql,join,sql-update,Sql,Sql Server,Tsql,Join,Sql Update,从另一个表值更新表时遇到问题 假设我有: 表A(键A、键B、字段A、字段B) 表B(键A、键B、字段A、字段B、字段C) 我想更新表A中的行,这些行将表B中的值与表B中的值进行比较 我试着这样做: UPDATE TableA SET FieldA = ( SELECT FieldA FROM TableA W INNER JOIN TableB as V ON W.keyA = V.keyA AND W.keyB = V.keyB WHERE W.KeyA = V.K
UPDATE TableA
SET FieldA =
(
SELECT FieldA
FROM TableA W INNER JOIN TableB as V
ON W.keyA = V.keyA AND
W.keyB = V.keyB
WHERE W.KeyA = V.KeyA AND
W.keyB = V.KeyB AND
)
FROM TableA PK INNER JOIN TableB AS I ON
TableA.keyA = TableB.keyA AND TableA.keyB = TableB.keyB
你的问题很复杂。你可以更简单地说
UPDATE a
SET a.fieldA = b.fieldA,
a.fieldB = b.fieldB
FROM TableA a
INNER JOIN TableB b
ON a.keyA = b.keyA AND
a.keyB = b.keyB
你的问题很复杂。你可以更简单地说
UPDATE a
SET a.fieldA = b.fieldA,
a.fieldB = b.fieldB
FROM TableA a
INNER JOIN TableB b
ON a.keyA = b.keyA AND
a.keyB = b.keyB