CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Oracle >  开发

SQL语句中in关键字的问题

楼主kingjay(GAS.Snake)2005-11-17 17:18:24 在 Oracle / 开发 提问

表A表B的PK均有字段ID。现在想做个存储过程:将表B中ID   未在表A中出现过   的记录删除。  
  其实过程很简单:  
  第一步,select   id   form   a;  
  第二步,delete   from   b   where   id   not   in   (第一步查询的结果);  
   
  我现在不知道在PL/SQL中怎么把第一步查询出来的数据填入第二步的括号中。请大家帮我想想,最好能提供代码,谢谢了。 问题点数:100、回复次数:7Top

1 楼xjqqxjqq(JAI)回复于 2005-11-17 19:16:09 得分 40

用exists   执行效率更高  
  SQL>   select   *   from   test_1;  
   
                  ID   NAME               PART  
  ----------   ----------   ----------  
                    1   a                     aa  
                    2   b                     aa  
                    3   b                     bb  
                    4   c                     cc  
                    2   A                     AA  
                    5   d                     dd  
   
  6   rows   selected  
   
  SQL>   select   *   from   test_2;  
   
                  ID   VAL  
  ----------   ----------  
                    1   abc  
                    2   abc  
  SQL>   delete   from   test_1   b   where     not   exists   (select   1   from   test_2   a   where   b.id=a.id);  
   
  3   rows   deletedTop

2 楼wsk_228(qing_feng)回复于 2005-11-18 08:40:20 得分 0

楼上说的挺明白了Top

3 楼zhpsam109(JACKY.昊昊)回复于 2005-11-18 09:03:53 得分 0

哈哈!Top

4 楼sbaz(万神渡劫)回复于 2005-11-18 10:32:42 得分 30

delete   from   b   where   id   not   in   (select   id   form   a   and   a.id   is   not   null)Top

5 楼wgsasd311(自强不息)回复于 2005-11-18 10:51:17 得分 20

delete   b   where   id   not   in(select   id   from   a)  
  --or  
  delete   b   where   not   exists(select   1   from   a   where   id=b.id)Top

6 楼sbaz(万神渡劫)回复于 2005-11-18 12:54:04 得分 10

楼上的,如果A表中有一个ID为NULL.  
  你的第一种写法  
  将会删除整张表的记录!Top

7 楼wgsasd311(自强不息)回复于 2005-11-18 13:24:13 得分 0

thanks   to   sbazTop

相关问题

  • 求教一SQL语句中的关键字?
  • 关于SQL语句中DISTINCT关键字的问题
  • SQL查询语句中有没有类似IIF的关键字?
  • 关于sql中insert语句中有关键字的问题,请教,再线等~~~
  • SQL语句中压缩重复值的关键字是什么????? 即答得分!!!
  • 请问Sql语句中有系统的保留关键字怎么办
  • jsp中插入有主关键字的数据库的sql语句如何写???
  • 求修改表中主关键字的SQL语句,在线等待!
  • 急!!!interbase中的SQL语句创建外部关键字问题!!!内详!!!
  • sql:like 关键字_for东亚字符 '%中文字符%',sql语句其中的 关键字_for东亚字符 是什么?

关键词

  • sql
  • 表
  • delete
  • aa
  • exists
  • where
  • test
  • select

得分解答快速导航

  • 帖主:kingjay
  • xjqqxjqq
  • sbaz
  • wgsasd311
  • sbaz

相关链接

  • Oracle类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo