mysql怎么求差集

mysql求差集的方法:1、使用not exists來篩選兩表的差集;2、通過LEFT JOIN連接后所產(chǎn)生空字段值來篩選兩表的差集。

mysql怎么求差集

本文操作環(huán)境:windows7系統(tǒng)、mysql8.0版、Dell G3電腦。

mysql怎么求差集?

mysql如何查詢兩個字段數(shù)不同的表中數(shù)據(jù)不一致的記錄

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

1、NOT EXISTS?

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

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效率更好

【相關(guān)推薦:mysql視頻教程

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊13 分享