获取两个数据的交集_MySQL交集和差集的实现方法
在MySQL中,只支持Union(并集)集合運算,而對于交集Intersect和差集Except并不支持。那么如何才能在MySQL中實現(xiàn)交集和差集呢?
一般在MySQL中,我們可以通過in和not in來間接實現(xiàn)交集和差集,當然也有一定局限性,面對少量數(shù)據(jù)還可以,但數(shù)據(jù)量大了效率就會變得很低。
創(chuàng)建table1
創(chuàng)建table2
插入
使用not in 求差集,但效率低
求交集,此時只有id name age 所有都一樣才是符合要求的。
union all和union的區(qū)別
UNION和UNION ALL的功能都是將兩個結(jié)果集合并為一個,但是這兩個關(guān)鍵字不管從使用還是效率上來說,都是有一定區(qū)別的。
使用上:
1、對重復結(jié)果的處理:UNION在進行表鏈接后會篩選掉重復的記錄,而Union All則不會去除重復記錄。
2、對排序的處理:Union將會按照字段的順序進行排序;UNION ALL只是將兩個結(jié)果合并后就返回,并不會進行排序處理。
效率上:
從效率上說,UNION ALL的處理效率要比UNION高很多,所以,如果可以確認合并的兩個結(jié)果集中,且不包含重復數(shù)據(jù)和不需要進行排序的話,推薦使用UNION ALL。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的获取两个数据的交集_MySQL交集和差集的实现方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 因安全带隐患 或超30万辆本田汽车将被召
- 下一篇: mysql 精度_mysql-笔记 精度