mysql怎麼求差集

藏色散人
發布: 2021-12-01 15:16:06
原創
13597 人瀏覽過

mysql求差集的方法:1.使用not exists來篩選兩表的差集;2、透過LEFT JOIN連接後所產生空字段值來篩選兩表的差集。

mysql怎麼求差集

本文操作環境:windows7系統、mysql8.0版、Dell G3電腦。

mysql怎麼求差集?

mysql如何查詢兩個字段數不同的表中資料不一致的記錄

一般可用NOT EXISTS(非存在子句)或LEFT JOIN左(右)連接後所產生空白字段值來篩選兩個表的差集

1、NOT EXISTS

#not exists在比對欄位有可利用的索引時,其運行效率是非常高,但是如果沒有索引的情況下運行在大數據表時,其運行效率極差,這時應避免使用它

SELECT * FROM smd_employee t1 WHERE NOT EXISTS ( SELECT 1 FROM asd_user_account t2 WHERE t2.u_phone = t1.employee_phone );
登入後複製

2、LEFT JOIN

用左(右)連接來求差集,由於需要實施兩表連接會導致笛卡爾效應其輸出集的記錄行可能會增多,

若果不是一對一或一對多,我們應該將多對多的情況處理成多對一後才進行連接,否則輸出的記錄集可能不正確。

SELECT a.* FROM smd_employee a LEFT JOIN asd_user_account b ON b.u_phone = a.employee_phone WHERE b.u_phone IS NULL;
登入後複製

求差集的兩種方法,有索引可利用時,not exists的效率要高於left join,反之left join效率更好

【相關推薦:mysql影片教學

以上是mysql怎麼求差集的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!