假设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
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
不能简单的作关键字比较;
to yangzi: 用途就是这些:有两个表,一个是含有所有历史数据(包括当天的)的原始表
(dbf),一个是不含当天变更(add/delete/update)数据的备份表(SQL),怎样根据这
两个表挑出当天的变更数据??
我建议你在原始表和备份表中各添加一时间字段:对于原始表,表示add或update的时间。
对于备份表,表示原始表中该记录被delete的时间。
并在原始表上建立一个触发器for delele:在备份表中记录该时间。
另建一个触发器for insert , update:在原始表中记录进行此操作的时间。
然后,你只要在原始表和备份表中取时间为当天的记录即可。
select b.id,a.id from b left join a on b.id = a.id where a.id is null
可以使用
select a.fielda
from a
where a.fielda
not in (select b.fielda from b)