列出两个表

时间:2016-05-06 02:31:35

标签: oracle

有两个具有相同列的表,并希望生成表之间的差异,并希望显示列出两个表中所有列的差异

示例:

select a.*,b.* from (
    (
        select a.col1,a.col2 from 
        (select col1, col2 from table1 minus select col1, col2 from table2) as a
    )
    union
    (
        select b.col1, b.col2 from
        (select col1, col2 from table2 minus select col1, col2 from table2) as b
    )
)

结果应为

a.col1 a.col2 b.col1 b.col2

a.FName a.ZipCode          b.FName b.ZipCode
John    <same value>       Jane    <same value as A>
Alpha   1234               Beta    2345

我的查询返回在第一个减去关键字

之后缺少R括号的异常

1 个答案:

答案 0 :(得分:0)

我认为您正在尝试查找表a中缺少的表a和表b中缺少的表a中的行。但是,加入这两套是没有意义的。请尝试以下查询,看看它是否适合您。

    SELECT col1, col2, 'Missing from table 2' title
    FROM
    (
    SELECT col1,
           col2 
    FROM   table1
    MINUS
    SELECT col1, 
           col2 
    FROM   table2
    )
    UNION ALL
    SELECT col1, col2, 'Missing from table 1' title
    FROM
    (
    SELECT col1,
           col2 
    FROM   table2
    MINUS
    SELECT col1, 
           col2 
    FROM   table1
    )