如果数据库表有个自动增长字段
理论上是这样
 1 2 3 4 5 6 7 8 9 10 11............
某天,我删除了两个,则变成
 1 2   4 5 6   8 9 10 11.............
如果我想把这两个找出来,就是找出3和7,因为它们在数据库里面没有记录,该怎么找哪?大家给点思路,谢谢...

解决方案 »

  1.   

    SELECT a.id+1 from try a left join try b on a.id=b.id-1 
    where isnull(b.id)
    没有考虑最后一条记录
      

  2.   

    建立辅助表,从1-10000,OR MAX(工作表),可以 用VBA生成,再用连接即可查出
    select a.* from lsb a left join 工作表 b on a.id=b.id
    where isnull(b.id)
      

  3.   

    我想到了一点
    我还个表,主键是一直自动增长,不会删除,假设有10万条记录....记为a表
    而这个表,主键是一直自动增长,会删除,假设有7万条记录...记为b表这样的话,我先取b表最大的id:max_id然后再用a表id小于max_id的那些记录,去left join b表这样可行吗?对速度哪?因为这个做法只有最后b表达到8万条后才会经常使用,所以那时候不知道对速度有没有影响 我还没操作过太多的数据,呵呵..