假设id是表A和B的主键那么可以通过以下的SQL 实现
select * from a where not id IN (select id from b)
或者
declare @id int
select @id=max(id) from b
select * from a where id>@id

解决方案 »

  1.   

    to DeD(似水年华):对于联合关键字呢?还有,增量数据中可能有修改的信息呀,也要选出来,
    不能简单的作关键字比较;
    to yangzi: 用途就是这些:有两个表,一个是含有所有历史数据(包括当天的)的原始表
    (dbf),一个是不含当天变更(add/delete/update)数据的备份表(SQL),怎样根据这
    两个表挑出当天的变更数据??
      

  2.   

    可以加字段吗?
    我建议你在原始表和备份表中各添加一时间字段:对于原始表,表示add或update的时间。
    对于备份表,表示原始表中该记录被delete的时间。
    并在原始表上建立一个触发器for delele:在备份表中记录该时间。
    另建一个触发器for insert , update:在原始表中记录进行此操作的时间。
    然后,你只要在原始表和备份表中取时间为当天的记录即可。
      

  3.   

    原始表不能修改字段(不是我控制),原始表是dbf桌面数据库,没有触发器
      

  4.   

    假设 a为原表 id 为主键
    select b.id,a.id from b left join a on b.id = a.id where a.id is null
      

  5.   

    如果有字段是唯一而且不重复的。
    可以使用
    select a.fielda 
    from a 
    where a.fielda 
       not in (select b.fielda from b)