有两个表,它们各有记录,如何快速比较两个表中相同记录的个数(只是个数,不要求具体的哪些记录),我对效率比较关注。
谢谢。

解决方案 »

  1.   

    select count(*)
    from A
    where exists (select 1 from B where A.col1=B.col1 and A.col2=B.col2 and A.col3=B.col3)
      

  2.   

    谢谢回答。接着上面的问题。
    如果表A的记录包含表B的记录,现在我想从A里面删除快速删除在B里面存在的记录,如何快速?
      

  3.   

    或者这样说,将A,B合并成一张表格C,C中包含B里面的所有记录,但是包含A中的除了B中的所有记录。
      

  4.   

    什么标准,有无相同的KEY字段
      

  5.   

    两个表是这样的,表A的第一列和第二列与表B的相同,表A的第三列的值比表B的大, 表A,B中都可能有重复的记录(合并后不变),
    表A
    c1  c2  c3
    1    2   5
    1    2   5
    2    4   5
    3    4   5
    表B
    c1  c2  c3
    1    2   4
    1    2   4
    2    4   4
    3    4   4
    4    6   7
    5    6   7
    合并C:c1  c2  c3
    1    2   5
    1    2   5
    2    4   5
    3    4   5
    4    6   7
    5    6   7
      

  6.   

    我想从表B中快速删除在表A中的记录,:
    c1 c2 相同?
      

  7.   

    对。c1 c2相同。
    然后将A中的记录快速插入到B中。
      

  8.   

    insert into b select a.* from a left join b on a.c1=b.c1 and a.c2=b.c2 where b.c1 is null
      

  9.   

    我试了一下,表B没有变,好像不行。
    我想变一下思路。这样,我如何通过查询同时得到表A,B的记录,A的记录全部得到,B的记录除去A的剩余部分?补充说明,B中与A相同的记录是这样的,
    c1,c2相同,A的c3大于B的c3。
      

  10.   

    select * from a
    union all
    select * from b where not exists (select 1 from a where c1=b.c1 and c2=b.c2)