免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1219 | 回复: 4
打印 上一主题 下一主题

求助,这样的delete应该怎样写? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-27 15:24 |只看该作者 |倒序浏览
table1为
    itemno(char),id(char)
      A1                 1
     A2                  3
table2
       itemno(char),id(char)
      A1                 1
      A1                 2
      A1                 3
      A2                  3
      A2                 4
      A3                  1
想从表2中删除与表1相符的记录。
delete from table2 where itemno,id in(select itemno,id from table1);
这样写不对,该怎样写?请高手指点。

论坛徽章:
0
2 [报告]
发表于 2006-04-27 23:40 |只看该作者
delete from table2 a where exist (select itemno,id from table1 b where a.itemno=b.itemno and a.id=b.id);

论坛徽章:
0
3 [报告]
发表于 2006-04-27 23:41 |只看该作者
delete from table2 where (itemno,id) in (select itemno,id from table1);

论坛徽章:
0
4 [报告]
发表于 2006-04-28 09:46 |只看该作者
想知道,上面2句delete的语句,执行效率比起来如何
哪个会快一点,测试过否?

论坛徽章:
0
5 [报告]
发表于 2006-04-28 09:53 |只看该作者
用exists的应该效率高一些
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP