可以用語句快速過濾select * from 人員表 where 姓名 not in (select 姓名 from 出勤表)
成都創新互聯專注為客戶提供全方位的互聯網綜合服務,包含不限于網站制作、網站建設、利通網絡推廣、小程序開發、利通網絡營銷、利通企業策劃、利通品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創新互聯為所有大學生創業者提供利通建站搭建服務,24小時服務熱線:028-86922220,官方網址:vcdvsql.cn
假設是學生退出登錄時在t1表刪除數據
假設id各為兩個表的主鍵
select * from t2 where id not in (select id from t1)
結果集是t2表中id不在t1表的數據
查詢兩張表數據不一致的記錄,可以用求差集(非交集)的辦法來解決。
SQL語言求"差集"的辦法相對于求"交集"的辦法要少很多,一般可用not exists(非存在子句)或 左(右)連接后所產生空字段值來篩選兩表的差集。
下面舉個例子供參考
選出a表中與b表中id不一致的記錄
select a.* from a where not exists (select 1 from b where b.id=c.id);
說明:上述語句只比對id一個字段,我們可以根據需要比對多個字段。not exists在比對字段有可利用的索引時,其運行效率是非常高,但是如果沒有索引的情況下運行在大數據表時,其運行效率極差,這時應避免使用它,這時我們可改用左(右)連接來求差集。
下面是用左連接來求差集的例子:
1
select a.* from a left join b on a.id=b.id where b.id is null;
用左(右)連接來求差集,由于需要實施兩表連接會導致笛卡爾效應其輸出集的記錄行可能會增多,若果不是一對一或一對多,我們應該將多對多的情況處理成多對一后才進行連接,否則輸出的記錄集可能不正確。
求差集的兩種方法,有索引可利用時,not exists的效率要高于left join,反之left join效率更好。
假設是學生退出登錄時在t1表刪除數據 假設id各為兩個表的主鍵 select * from t2 where id not in (select id from t1) 結果集是t2表中id不在t1表的數據
當前題目:mysql怎么比較兩個表 mysql比較兩張表的數據差異
網站鏈接:http://vcdvsql.cn/article38/ddsiisp.html
成都網站建設公司_創新互聯,為您提供手機網站建設、定制開發、網站維護、移動網站建設、網站收錄、商城網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯