日常工作中,我们常需要在数据库中实现如下功能,查询在a表而不再b表的数据,或者既在a表有在b表的数据。
在oracle中前者使用minus,后者使用intersect实现,在informix中没有这样功能,但可以等价:
在a表但不在b表
select * from a
where not exists (
select * from b  
where   b.col1=a.col1 and b.co2=a.col2 and b.col3=a.col3 and ... and b.colN=a.colN
)
既在a表又在b表
select * from a
where    exists (
select * from b  
where   b.col1=a.col1 and b.col2=a.col2 and b.col3=a.col3 and ... and b.colN=a.colN
)