![](/img/trans.png)
[英]Grab all rows columns in table apart from rows which have a non-unique value in one column
[英]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.