[英]How to update a table by using a join of two tables?
我有一個包含這些列的表:
Id int, Reference varchar(50), FileId int
“參考”列始終以“ D”或“ C”結尾。 FileId
需要更新。 更新時,我有一個可變的表:
DECLARE @fileIds TABLE (
Id int NOT NULL,
[Type] varchar(1) NOT NULL
);
此表變量始終最多包含2條記錄,至少1條記錄。 “ Type
列的值為“ D”或“ C”
現在,我需要通過設置FileId
以匹配相應的文件ID來更新我的表。 這是執行更新的正確方法:
UPDATE myTable
SET
FileId = f.Id
FROM
myTable
INNER JOIN @fileIds f ON RIGHT(s.Reference, 1) = p.[Type]
我認為錯過了別名,但是您使用了兩個不同的別名。 因此,“引用”和“類型”列是屬於哪個表,因為使用其他別名。
使用連接語法進行更新。
UPDATE
A
SET
A.FileId = B.Id
FROM
tableA AS A
INNER JOIN
tableb AS B ON A.Id = B.Id
您錯過了mytable的別名
UPDATE s
SET
FileId = f.Id
FROM
myTable s
INNER JOIN @fileIds f ON RIGHT(s.Reference, 1) = f.[Type]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.