SQL-查找表中的差异并在表中插入/更新缺少的值
我有一个SQLServerExpress数据库,其中包含一个从系统生成的表,我不想对其进行操作,因此我创建了另一个表 表1SQL-查找表中的差异并在表中插入/更新缺少的值,sql,sql-server,Sql,Sql Server,我有一个SQLServerExpress数据库,其中包含一个从系统生成的表,我不想对其进行操作,因此我创建了另一个表 表1 AreaName Area_1 Area_2 Area_3 Area_4 表2 Area_1 Area_2 我想搜索表之间的差异(我已经对其进行了排序) 与表_1相比,表_2中缺少的值应作为新行插入 一句话能做到吗 SELECT MIN (TableName) AS TableName, Area FROM (SELECT
AreaName
Area_1
Area_2
Area_3
Area_4
表2
Area_1
Area_2
SELECT
MIN (TableName) AS TableName,
Area
FROM
(SELECT
'Table A' AS TableName,
Table_2.Area
FROM Table_2
UNION ALL
SELECT
'Table B' AS TableName,
Area
FROM [Table_1]) tmp
GROUP BY
Area
HAVING
COUNT(*) = 1
ORDER BY
Area;
这是我现在用来排序的SQL…实现这一点的简单方法:
INSERT INTO Table_2 (AreaName)
SELECT AreaName FROM Table_1
WHERE AreaName NOT IN (SELECT AreaName FROM Table_2)
谢谢,这解决了我的问题。有时你看不见森林,因为所有的树都是如此;)
Insert into table1 (columns)
select Columns from table2 a
where not exists(select * from table3 b where a.ID =b.ID)