我想写一个更新语句,使用两个表A和B,并更新A中的列。
我尝试过Subquery,也尝试过直接使用Join进行更新。但我不得不取消查询,因为它花了很多时间。
我昨天写了一段代码,由于数据大小,花了很多时间。我想做的就是使用 Table B 更新 Table A 中的行。
查询如下所示
UPDATE C
SET A.Name = A.Name + B.SirName
FROM (
SELECT * FROM A
INNER JOIN B
ON (A.id = B.id)
) C
我很困惑,上面的查询会更新哪个表?
您必须使用 X 连接(内部连接、左侧连接或您想要的连接)进行更新,如下例所示:
UPDATE b
set
b.Amount = b.Amount + a.Amount,
b.Paid = 0
FROM TableA a
INNER JOIN TableB b on
(a.AccountId = b.AccountId AND
a.Year = b.Year)
您应该在
UPDATE
语句中直接引用表A
UPDATE A
SET A.Name = CONCAT(A.Name, B.SirName)
FROM A
INNER JOIN B ON A.id = B.id;