Oracle中 20万数据找出不在另一张表的数据
时间:2011-12-24
来源:互联网
有一张表 企业基本信息 20万条数据, 另外有 20~30张企业信用信息表(存在企业的信用信息,主键是 企业注册号),
想在20万基本数据中 快速找出不在信用信息表中的 企业基本信息。
速度啊 一定要 效率 我用 not in 居然要 6s ,not exists 也要6s~7s 。
在线请大牛帮忙啊。
作者: zhanggnol 发布时间: 2011-12-24
SQL code
create or replace view view_cj_qy_wcy as select id,qymc,yyzzzch,zzjgdm,qylx,qyzs,dept_simple_name from C_QYJBXX where yyzzzch not in (select distinct yyzzzch from C_QY_GCYYXX union select yyzzzch from CJ_QY_ZZJBXX union select yyzzzch from CJ_QY_SGXKZXX union select yyzzzch from CJ_QY_GCYJXX union select yyzzzch from CJ_QY_LHXWJLXX union select yyzzzch from CJ_QY_XZCFXX union select yyzzzch from CJ_QY_XZQZXX union select yyzzzch from CJ_QY_XZCJDXX union select yyzzzch from CJ_QY_XYPJCXQY );
作者: zhanggnol 发布时间: 2011-12-24
既然要找不存在的
不用not in和not exists
那用什么
难道用left join或minus
那会更慢
问题不是not in、not exists
应该是你关联的条件
把详细代码贴出来,大家才能帮你解决
不用not in和not exists
那用什么
难道用left join或minus
那会更慢
问题不是not in、not exists
应该是你关联的条件
把详细代码贴出来,大家才能帮你解决
作者: canhui87 发布时间: 2011-12-24
引用 2 楼 canhui87 的回复:
既然要找不存在的
不用not in和not exists
那用什么
难道用left join或minus
那会更慢
问题不是not in、not exists
应该是你关联的条件
把详细代码贴出来,大家才能帮你解决
既然要找不存在的
不用not in和not exists
那用什么
难道用left join或minus
那会更慢
问题不是not in、not exists
应该是你关联的条件
把详细代码贴出来,大家才能帮你解决
你好,上面的是我的视图, 系统中的表是通过系统自动建的,视图也是自动建、更新的。
我实在是找不到好的方法啊。
SQL code
create or replace view view_cj_qy_wcy as select id,qymc,yyzzzch,zzjgdm,qylx,qyzs,dept_simple_name from C_QYJBXX where yyzzzch not in (select distinct yyzzzch from C_QY_GCYYXX union select yyzzzch from CJ_QY_ZZJBXX union select yyzzzch from CJ_QY_SGXKZXX union select yyzzzch from CJ_QY_GCYJXX union select yyzzzch from CJ_QY_LHXWJLXX union select yyzzzch from CJ_QY_XZCFXX union select yyzzzch from CJ_QY_XZQZXX union select yyzzzch from CJ_QY_XZCJDXX union select yyzzzch from CJ_QY_XYPJCXQY );
作者: zhanggnol 发布时间: 2011-12-24
用not in子查询就不用去重了
去掉distinct
union 改为union all
select yyzzzch from C_QY_GCYYXX
union all select yyzzzch from CJ_QY_ZZJBXX
去掉distinct
union 改为union all
select yyzzzch from C_QY_GCYYXX
union all select yyzzzch from CJ_QY_ZZJBXX
作者: canhui87 发布时间: 2011-12-24
引用 4 楼 canhui87 的回复:
用not in子查询就不用去重了
去掉distinct
union 改为union all
select yyzzzch from C_QY_GCYYXX
union all select yyzzzch from CJ_QY_ZZJBXX
用not in子查询就不用去重了
去掉distinct
union 改为union all
select yyzzzch from C_QY_GCYYXX
union all select yyzzzch from CJ_QY_ZZJBXX
要了你方法了 但是还是 5.9 s 啊。
作者: zhanggnol 发布时间: 2011-12-24
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28