簡體   English   中英

從非唯一標識符將列信息從一個表導入到另一個表

[英]Import Column info from one table to another from non-unique identifier

我有兩個表,表A包含要傳遞的信息,表BI希望接受該信息。 (19列varchar)。

它們共同的唯一列是“ ItemTitle”(不要問,我沒有創建它),因此我試圖基於ItemTitle匹配進行導入。 我的問題是表A中的ItemTitle是唯一的,但表B上可能有許多同名。

我想將列信息導入所有具有相同ItemTitle的行,而不僅僅是它找到的第一個行。

是否有可能做到這一點?

這是我嘗試的方法:(我只使用1列的集合來查看它是否起作用),但沒有。 錯誤消息4104,級別16,狀態1,行29無法綁定多部分標識符“ prodData.ItemTitle”。

SELECT prodData.[prodID]
      ,prodData.[Item]
      ,prodData.[ParentItem]
      ,prodData.[ItemTitle]
      ,prodData.[15]
      ,prodData.[16]
      ,prodData.[17]
      ,prodData.[18]
      ,prodData.[19]
      ,prodData.[20]
      ,prodData.[21]
      ,prodData.[22]
      ,prodData.[23]
      ,prodData.[24]
      ,prodData.[25]
      ,prodData.[26]
      ,prodData.[27]
      ,prodData.[28]
      ,prodData.[29]
      ,prodData.[30]
      ,prodData.[31]
      ,prodData.[32]
      ,prodData.[33]
    From [database].[dbo].[tbl_ProductInfoDump] as prodData
    Inner Join [database].[dbo].[tbl_ProductFilterDump] as filterData 
    on filterData.ItemTitle = prodData.ItemTitle


Update [database].[dbo].[tbl_ProductInfoDump] set [15] = (Select [15] from [database].[dbo].[tbl_ProductFilterDump] as filterData where filterData.ItemTitle = prodData.ItemTitle)

您必須使用帶有join的更新,或者使用select進行更新(無論您想為其命名)。

想法是將目標表(B)與原始表(A)聯接在一起,並使B的每一行進行的更新都是聯接的A行中的列的值。

您可以在此處找到一個很好的解釋: SQL SERVER –從SELECT語句進行更新–在UPDATE語句中使用JOIN –在Update語句中有多個表 查詢如下所示:

UPDATE B
SET
   Col1 = A.Col1,
   Col2 = A.Col2
FROM B
INNER JOIN A ON A.Title = B.Title

當然,您可以包括其他過濾器( where子句)以限制更新的行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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