我有三个列数相同的表。
第一张表卸载
第二张表 Offload_Temp
决赛桌 Merge_Test
数据会定期插入 Offload_Temp (在插入新数据之前删除所有行)
delete from Offload_Temp
我想要实现的目标是......联盟/合并卸载和 Offload_Temp 并插入 Merge_Test
Merge_Test 已经包含一些数据。我想避免重复。
以下是我的疑问:
INSERT INTO Merge_Test SELECT * FROM Offload UNION SELECT * FROM Offload_Temp EXCEPT (SELECT * FROM Merge_Test)
每次 Offload_Temp 插入新数据(可能包含相同的数据),上述查询会在 Merge_Test
中创建重复项定期重复此过程。
如何避免 Merge_Test 中的重复?
答案 0 :(得分:0)
你可以试试这个。
INSERT INTO Merge_Test
select * from (
SELECT
*
FROM Offload
UNION
SELECT
*
FROM Offload_Temp
) x
except
SELECT
*
FROM Merge_Test
如果offload和offload_temp可以拥有相同的数据,那么请尝试以下查询。在说,UNION应该给你明显的结果。可能更好地显示所有表格的数据。
INSERT INTO Merge_Test
select * from (
SELECT
*
FROM Offload
except
SELECT
*
FROM Offload_Temp
) x
except
SELECT
*
FROM Merge_Test