表A结构
vv int主键(值不可重复)
bb string
表B结构
vv int(普通int型,非主键,值有重复数据)
bb string
现在表A和B都有大量数据,A有超过100W条数据,表B有20W条左右
两表中有一部分数据是相同的,现在想通过SQL查询出表B不存在于表A中的数据,通过vv字段来对比,就是A表中不存在而B表中存在的数据查询出来
现有现成的SQL语句
select * from B WHERE vv not in (select B.vv from A, B where A.vv = B.vv )
但用这种方式查询效率太低了,因为程序是多线程频繁的调用到这条查询语句,所以求一条高效率的查询语句
望达人指点,谢谢
另外如果查询出来的B表数据本身有重复值,我可以用程序代码来过滤重复,如果SQL语句本身能过滤重复值,那当然更好
100大洋
select * from tba
EXCEPT
select * from tbb
比如说
表A中有数据(vv字段)
1
2
3
7
8
9
表B中数据
3
4
4
5
5
6
7
那么查询出结果是
4
5
6
如果过滤重复值太麻烦,那我用程序过滤也行,总之只要能查询出表A中不存在而表B中存在的值就行
except差21秒
应该用b except a
顶楼上的。
相关问答:
执行的顺序:
1)文件浏览框(选择文件使用)
选择好文件后
点击一个导入按钮的时候 ,把上面上传框里的csv文件以一个ID为文件名,上传到**/**文件夹下
2)读取这个文件夹下的csv的文件,转换成sql
3 ......
sqlserver2005 建立的数据库,与手持pda传输数据,最近突然出现无法传递数据的问题,pda端提示的错误时outofmemoryexception,但是pda上面的容量没有问题,
sqlserver的日子上的错误如下:
日期 2010-1-25 14:45: ......
1。怎样使xp_cmdshell能完整输出超过255个字符的字符串。
2。select 时,检索速度是与from后的 TABLE顺序有关,还是与where条件的顺序有关(TABLE数据多少 )
在系统属性设定里有个选项,可以修改单字段输出字数限制. ......
我想查询出每天数据的最大的一个值。表的格式如下
表名: hisdata
字段 编号 值 状态 时间
Id value state dattime
101 32.3 0 ......