假如我有一本新表,表A,有姓名和身份证两个关键字段,以前有一个数据非常之多的数据库,文件名是表B,也有姓名和身份证两个关键字段,但身份证号有的是15位有的是18位,现在我想根据身份证去查表A中有但表B中没有的那些人的数据,但如下面的 江育民这种人的身份证18和15位其实都表示同一人,这种人也要剔除,那么我该怎么写这句命令
呢?
如表A 姓名 身份证号码 表B 姓名 身份证号码
毛德卿 35682319770830754X 陈咯 338924580209009
江育民 334121197007100617 毛卓兴 336723197204017717
郑民禄 376823193612217525 郑民禄 376823193612217525
罗德同 312823192312287519 江育民 334121700710061
邵德廖 357823195801137515 吴建刚 330823660401003
------解决方案--------------------
select * from B where not exists (select 1 from A where =left(身份证号码,6)+substring(身份证号码,9,9)=B.身份证号码)