mysql擷取兩個集合的交集和差集

來源:互聯網
上載者:User

標籤:union   pre   name   class   非技術   rom   關鍵字   select   --   

 mysql中擷取兩個集合的交集,我的方法如下:

1.兩個集合的結構要一致,對應的欄位數,欄位類型

2.將兩個集合用 UNION ALL 關鍵字合并,這裡的結果是有重複的所有集

3.將上面的所有集 GROUP BY id

4.最後 HAVING COUNT(id)=1,等於1的意思是只出現了一次,所以這個是差集,如果等於2,那麼就是交集

這是實現的基本原理,具體如下:

 1 -- 下面的sql有明顯的問題,不過這個只是一個示意,從一個表中查詢不需要用到交集和差集,條件可以合并在一起直接查詢出來的.能明白意思就好 2 -- 下面的sql的意思是找到所有非技術部的員工的id,code和name 3 SELECT a.* FROM( 4     SELECT id,code,name FROM test_emp 5     UNION ALL 6     SELECT id,code,name FROM test_emp WHERE dept=‘JSB‘ 7 )a GROUP BY a.id HAVING COUNT(a.id)=1 8  9 -- 下面的sql的意思是找到所有技術部年齡大於25的員工10 SELECT a.* FROM(11     SELECT id,code,name FROM test_emp WHERE age>2512     UNION ALL13     SELECT id,code,name FROM test_emp WHERE dept=‘JSB‘14 )a GROUP BY a.id HAVING COUNT(a.id)=2

 

mysql擷取兩個集合的交集和差集

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.