zoukankan      html  css  js  c++  java
  • 有3个集合, 从其中一个集合中删除同时存在于另外两个集合的元素

    如下分享的邮件,在博客园做个记录,以便以后使用。

    在这里,其实也想倡导一下程序员要具有的分享精神。鼓励大家多分享,平时有什么新的收获,最好在team里做个分享 。分享也是一种很好的事情。对团队来说,可以形成很好的工作氛围,通过提高每个人的能力进而增强组织战斗力。对个人来说,一来提高了自己的表达能力,二来,别人可能会提出一些疑问,自己通过学习可以掌握更全面更深入的知识。


    发件人: ZHANGGUOZHAN
    发送时间: 2013-01-10 15:22:02
    收件人: zgz1230; guozhan_zhang; 853105539
    抄送: jiangjuninfo; GREENSOUL; daizhize; yanwenjing
    主题: 分享:有3个集合, 从其中一个集合中删除同时存在于另外两个集合的元素
     
    ---- ** 有3个集合, 从其中一个集合中删除同时不在另外两个集合的元素
    ---- ** 很简单的问题,我却思考良久才得到答案
    CREATE TABLE #(id INT)
    CREATE TABLE #A(id INT)
    CREATE TABLE #B(id INT)
    
    INSERT # VALUES(1),(2),(3),(4)
    INSERT #A VALUES(1),(3)
    INSERT #B VALUES(2),(3)
    
    -- ** 从命题我们可知,要删除的集合是{3}
    
    
    -- 先想到了这句sql, 进而知道了如何求解
    SELECT * FROM # JOIN #A ON #.id=#A.id JOIN #B ON #.id=#B.id
    
    -- 下面语句正确,可以得到我们想要的结果{3}
    SELECT * FROM # WHERE  EXISTS(SELECT 1 FROM #a WHERE id=#.id)
    AND  EXISTS(SELECT 1 FROM #b WHERE id=#.id)
    
    -- PS:下面语句的结果是{4},即同时不在另外两个集合
    SELECT * FROM # WHERE NOT EXISTS(SELECT 1 FROM #a WHERE id=#.id)
    AND NOT EXISTS(SELECT 1 FROM #b WHERE id=#.id)
    
    -- PS:下面语句正确,可以得到排除了同时在另外两个集合的元素后的集合:{1,2,4}
    SELECT * FROM # WHERE NOT EXISTS(SELECT 1 FROM #a JOIN #B ON #A.id = #B.id WHERE #A.id=#.id)
    
    
    DROP TABLE #,#A,#B
    

     


    当看到一些不好的代码时,会发现我还算优秀;当看到优秀的代码时,也才意识到持续学习的重要!--buguge
    本文来自博客园,转载请注明原文链接:https://www.cnblogs.com/buguge/archive/2013/01/10/2854962.html


  • 相关阅读:
    居敬持志
    测试内容
    TestMarkDown
    git
    面试题
    兼容的可视区高度和宽度
    JS(数据类型、预解析、闭包、作用域、this)
    JavaScript new 一个构造函数
    Windows下gm打水印老是报gm convert: Unable to read font (n019003l.pfb)问题
    如何开始一个vue+webpack项目
  • 原文地址:https://www.cnblogs.com/buguge/p/2854962.html
Copyright © 2011-2022 走看看