簡體   English   中英

如何通過使用兩個表的聯接來更新表?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM