Oracle查询两表相差的数据
原来以为not exists 会比not in 效率高,但在实际运用过程中,发现两表数据差不多的情况下,用另一种方式效率会更好. 原设计
原来以为not exists 会比not in 效率高,但在实际运用过程中,发现两表数据差不多的情况下,用另一种方式效率会更好.
原设计语句:
select * from (select * from ex_22222 where exattribute1 = '13') K1 where not exists
(
select * from
(
select ex_22222.entityid from ex_22222,ut_users where exattribute1 = '13'
and ex_22222.entityid = ut_users."UID"
) K2
where K1.ENTITYID = K2.ENTITYID
)
新改进语句:
select K1.ENTITYID,K2.ENTITYID from (select * from ex_22222 where exattribute1 = '13') K1,
(
select * from
(
select ex_22222.entityid from ex_22222,ut_users where exattribute1 = '13'
and ex_22222.entityid = ut_users."UID"
)
) K2
where K1.ENTITYID = K2.ENTITYID(+)
and K2.ENTITYID is null
,上一篇: mysql limit查询优化分析
推荐阅读
-
mysql实现查询数据并根据条件更新到另一张表的方法示例
-
oracle数据泵导入表基础:impdp+ftp的导入步骤
-
Oracle数据库表名支持的最大长度是多少
-
MySQL入门(三) 数据库表的查询操作【重要】
-
一次性获取多个oracle序列的值,实现关联表多数据的批量insert
-
Sqlserver数据库中char、varchar、nchar、nvarchar的区别及查询表结构
-
oracle数据库查询没问题,正常显示两个汉字;但是java后台Hibernate查询的时候只显示第一个汉字怎么解决?
-
Oracle字段根据逗号分割查询数据的方法
-
MySQL数据库同时查询更新同一张表的方法
-
Oracle生成查询包含指定字段名对应的所有数据表记录语句