RT,  数据库A中的表t和数据库B中的表t是一样的结构,甚至内容之前也是一样的,但是数据库B的表t曾经被修改过一些非主键的数据项,现在我想对比A中的表t找出不一样的   请问怎么做呢?

解决方案 »

  1.   

    select * from a left join t on a.id=t.id 
    where (a.f1<>t.f1 or a.f2<>t.f2 ....)
      

  2.   

    直接用minus
    select * from B minus (select * from A)
    试试
      

  3.   

    找出与a表对照,b中不一样的,sql如下:
    select * from b where b.id not in(select m.id from (select * from a union select * from b) m)
      

  4.   


    谢谢你的灵感。
    select * from b a where a.id in (select m.id from (select * from a union select * from b) m group by m.id having count(1) > 1);