搜索墙首页  编程技术  java  asp  ajax  php  c/c#/c++  数据库  oracle  mysql  db2  操作系统  windows  linux  股吧
首页 > 编程 > 数据库 > oracle
 1         
1楼  jeemese 2007-05-17 10:22:39

我有二个表结构一样的表,都有至少200左右的数据,我要查询出二个表中不同的记录,请教下怎么快些?
2楼  jeemese 2007-05-17 10:25:15

sorry,写漏了,200W
3楼  HelloWorld_001 2007-05-17 11:23:43

简单的话
假设id关联,A表纪录少
找出A表不存在,B表存在的纪录

select   B.*   from   B
where   not   exists(select   'Z '   from   A   where   A.id=B.id)

有个其他的方法
select   A.id,B.id   from   A,B
where   A.id(+)=B.id
and   A.id   is   null

如果2表都可能缺少
select   A.*, 'A '   from   A
union  
select   B.*, 'B '   from   B
minus
select   A.*, 'AB '   from   A,B
where   A.id=B.id

没测试,仅工参考
4楼  precipitant 2007-05-17 13:42:16

(select   *   from   b   minus   select   *   from   a)
union
(select   *   from   a   minus   select   *   from   b)
5楼  precipitant 2007-05-17 13:43:49

上半部分是   b中有   而   a   中没有的记录
下半部分是   a中有   而   b   中没有的记录

用union   加起来   就是

两个表中   全部不同的记录的集合
6楼  jeemese 2007-05-17 13:47:48

谢谢,我先测试下,想要执行快点的方法!
 1         
您的发言将按有关规定都会存档,您须为所发表后果负责,请您遵纪守法并注意语言文明。
标题:求个简易的SQL
热门关注
标题回复点击
Oracle 10g (ASM):Sample Implementation0816
Oracle 正版用户授权0781
动态性能视图(Dynamic perfermance view V$)0770
EM 无法启动&&重新完全配置EM0637
OracleDBConsole 服务因 2 (0x2) 服务性错误而停止。请问一下如何解决!2466
小布老师Oracle 9i DBA Fundamentals II0408
ORA-1652: unable to extend temp segment诊断以及解决0391
Oracle Linux 和 iSCSI 上构建您自己的 Oracle RAC集群10381
locate pl/sql bottleneck0346
缓冲处理器 buffer handle0341
搜索墙@2009 www.pkwall.com all rights reserved QQ:276471788 [京ICP备09111534号]
声明:本站部分数据来源于网络,仅供参考,如有版权问题,请联系我们,我们将及时删除!转载本站请注明来源