我正在使用SQL Server 2012。 我有两张结构相同的桌子。 (假设有四列--ID,C2,C3,C4) 我想将数据从Table1复制到Table2。
两个表之间的唯一区别是Table1包含' ID'中的本地ID。字段和表2应具有全局ID。
还有另一个第三个表包含localID和全局ID之间的映射。 (多个本地ID可以映射到一个全局ID)
实施例: ID' abcd'在俄罗斯可以是全球ID 123 ID' cdef'在中国可以是全球ID 123 因此,俄罗斯的abcd基本上是中国的cdef(这种映射存储在表3中)
我想从table3中获取对应于Table1中的本地ID的GlobalID,并将它们插入到table2中。
Table2具有在列ID + C2上定义的主键约束。
问题是我们很有可能会有重复的数据 - 所以我们只想插入ID + C2的不同组合。 (群集PK)
有人可以帮我这个吗?对不起,如果这令人困惑。
我现在有了这个查询,但是在将数据从T1复制到T2时它不会消除重复,因此我在PK上遇到错误。
INSERT INTO TABLE2
(ID,
C2,
C3,
C4)
SELECT T3.ID,
T1.C2,
T1.C3,
T1.C4
FROM TABLE1 T1
JOIN TABLE3 T3 ON T1.ID = T3.ID
JOIN TABLE2 T2 ON T2.ID = T1.ID
答案 0 :(得分:0)
我不确定,但我想你想要像
这样的东西INSERT INTO Table2 (globalID)
SELECT DISTINCT m.globalID from Mapping m inner join Table1 t
on t.country = m.country and t.localId = m.localID
您可以使用任何选择,因此请根据需要进行更改。