日期:2014-05-17  浏览次数:20679 次

从一个表中找出相对于另一个表变更的数据
现在有两个相同的表,一个是正式表(table),一个是临时表(temp)。有没有办法找出临时表相对于正式表增加,修改和删除的记录?
------解决方案--------------------
引用:
现在有两个相同的表,一个是正式表(table),一个是临时表(temp)。有没有办法找出临时表相对于正式表增加,修改和删除的记录?

用SQL查询出来吧,NOT EXISTS
------解决方案--------------------
引用:
select * from Temp where rid in Temp.PK and PK not in (select PK from table);--新增数据
select * from table where PK in table.PK and PK not in (select PK from Temp);--删除数据

更新的数据怎么办呢?

主要是看你更新了哪些数据吧,这样才能找出差别
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

现在有两个相同的表,一个是正式表(table),一个是临时表(temp)。有没有办法找出临时表相对于正式表增加,修改和删除的记录?

用SQL查询出来吧,NOT EXISTS
not exists怎么用,写个例子呢

exists应该不行,不知道MINUS行不行

WITH T AS
 (SELECT 1 ID
    FROM DUAL
  UNION ALL
  SELECT 2 ID
    FROM DUAL
  UNION ALL
  SELECT 3 ID
    FROM DUAL
  UNION ALL
  SELECT 4 ID
    FROM DUAL),
T1 AS
 (SELECT 1 ID
    FROM DUAL
  UNION ALL
  SELECT 3 ID
    FROM DUAL
  UNION ALL
  SELECT 4 ID
    FROM DUAL
  UNION ALL
  SELECT 5 ID
    FROM DUAL)
SELECT *
  FROM T
MINUS
SELECT * FROM T1