日期:2014-05-18  浏览次数:20382 次

急求一条SQL语句!!!!
各位大侠,我想求一条SQL语句,情况如下:
我的库里有两个表:A1与A2;
A1里面的字段为:dk,id,bz;这些都是字符型;
A2里面的字段为:id,mc,sl;其中sl为int型,其余的都为字符型;
A1中的id与A2中的id关系如下:A1中的id为九位数字,A2中的id为十五位数字,A2中的前九位就是A1的id;
我想通过一条语句实现如下效果:
生成一个新表,使得A1中id与A2中id前九位一样的所有条目都一一对应到一个新表里,同时也包括,表A1与A2中的其它数据!
这样的语应该怎么写呢,还请各位大侠帮忙,谢谢!
我想查询A2中id前九位,在A1中id找不到对应的这些项,请各位大侠救急啊!
表A2                               表A1
          id                                       id
305214013010281               305214013
305214013010281               305214015
305214013010291               305214019
305214015110281               305215003
305214019124271               305216002
305215003162271               305216003
305215003162271
305215003162271
305215003162281
305215003162281
305215003162281
305215003162291
305216002046261
305216002046281
305216003060281
305216005110261
305216005110271
305216020040261
305216020040261
305216020040271
305216020040271
305216020040271
305216020040281
305216020040281
305216020050281
305216020050291
305216023030291
305216024161291


------解决方案--------------------
两表中都有的
select A1.*,B1.* from A1,A2 where Left(A2.id,9)=A1.id
两表都有还包括其它数据
select A1.*,B1.* from A1 full join A2 on A1.id=A2.id
在A1中id找不到对应的这些项
select * from A2 where Left(A2.id,9) not in(select id from A1)

select * from A2 where Left(A2.id,9) not exists(select 1 from A1 where A1=A2)