2012-07-10 51 views
1

在我的过程中,我有两个具有相同数据的表格。我通过游标浏览我的第一张桌子。与第二张表相比,我发现了很多相同的数据。如果,例如在我的table_1中,我的数据中有十个数据,并且我有12个数据表2,如何检测由光标遍历的两个table_1中的缺失数据?使用光标浏览两个表格

Thx。

回答

3

听起来非常像使用MINUS操作符会更好。

SELECT a, b, c 
FROM table1 
MINUS 
SELECT a, b, c 
FROM table2 

这将显示table1中不存在于table2中的所有结果。为了显示差异两种方式,你可以做这样的事情:

SELECT z.*, 'In table1, not in table2' problem_description 
FROM (
    SELECT a, b, c 
    FROM table1 
    MINUS 
    SELECT a, b, c 
    FROM table2 
) z 
UNION ALL 
SELECT z.*, 'In table2, not in table1' problem_description 
FROM (
    SELECT a, b, c 
    FROM table2 
    MINUS 
    SELECT a, b, c 
    FROM table1 
) z 

SQL Fiddle for this answer