oracle联合查询优化问题
时间:2011-12-28
来源:互联网
假设:(只是假设)
现在比如我有三张表test1 ,test2,test3
SQL code
我现在需要每个表中的name*那个字段,并且排除表2中的一些记录,比如id为1,3,5,7,9,10这些的。
直接用SQL code
这样貌似很低的效率,假设数据量过千万
现在比如我有三张表test1 ,test2,test3
SQL code
create table test1( id number primary key, name1 varchar2(20), t_test2_id number foreign key--------指向test2 ) create table test2( id number primary key, name2 varchar2(20), t_test3_id number foreign key--------指向test3 ) create table test3( id number primary key, name3 varchar2(20) )
我现在需要每个表中的name*那个字段,并且排除表2中的一些记录,比如id为1,3,5,7,9,10这些的。
直接用SQL code
select t1.id,t1.name1,t2.name2,t3.name3 from test1 t1,test2 t2,test3,t3 where t1.t_test2_id = t2.id and t2.t_test3_id = t3.id and t2.id not in(1,3,5,7,9,10);
这样貌似很低的效率,假设数据量过千万
作者: lxm_yl 发布时间: 2011-12-28
from t1,t2,t3 按表的大小从大到小排列..
not in 改成 not exists
not in 改成 not exists
作者: zujinsheng 发布时间: 2011-12-28
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28