这段时间在进行数据库(我是用的oracle)操作的时候,常常要比较T1主键不在T2表中的记录。
设:T1中有 id1 ,T2中有id2,要查询T1表中id1值不在T2表id2集中的记录。
以往的实现方式是:
select * from T1 where not id1 in (select id2 from T2)
当记录多了后,这样的效率非常低。
今天突然想到一个方法解决了这个问题,就是使用连接,实现如下:
select * from (
select T1.*, T2.id2 as tid2 from T1 left join T2 on T1.id1=T2.id2
)where tid2 is null
速度提高了无数倍
呵呵,临时想到的,小技巧,写出来供大家娱乐,如果大家有什么其他好方法请指教