Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从多键表更新T-SQL中的多列_Sql_Sql Server_Tsql_Join_Sql Update - Fatal编程技术网

如何从多键表更新T-SQL中的多列

如何从多键表更新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

从另一个表值更新表时遇到问题

假设我有:

表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.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