我有两个版本的数据库(v1和v2),我收集了v2中新增的所有内容,并使用此查询将其插入到临时数据库中
INSERT INTO [tmp].[dbo].[Mat]
SELECT *
FROM [v2].[dbo].[Mat]
WHERE myid NOT IN (SELECT myid FROM [v1].[dbo].[cMat_Mat])
表Mat
的列是myid
(主键),matnumber
和其他一些列。
问题是,我们在某些情况下更改了matnumber
,但它没有将其视为新内容,因为我只比较myid
。
所以这是我的问题。我需要那些位于[v1].[dbo].[cMat_Mat]
和[v2].[dbo].[Mat]
并且具有相同myid
但不同matnumber
的行。我怎么查询? ......用SELECT
来证明结果。
答案 0 :(得分:4)
只需join
具有所需条件的表格。
INSERT INTO [tmp].[dbo].[Mat]
SELECT v2m.*
FROM [v2].[dbo].[Mat] v2m
JOIN [v1].[dbo].[cMat_Mat] v1m on v1m.myid = v2m.myid and v1m.[cMat_Mat] <> v2m.[cMat_Mat]