欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL如何實現(xiàn)兩張表取差集

 更新時間:2023年02月07日 09:50:38   作者:搬運Gong  
這篇文章主要介紹了MySQL如何實現(xiàn)兩張表取差集問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

MySQL兩張表取差集

業(yè)務(wù)場景如下:

人員表中有證件號、手機號字段,這兩個字段因為涉及到個人隱私問題,因此加密存儲,有另外一張解密表可以和人員表進行關(guān)聯(lián),查出解密后的證件號和手機號,現(xiàn)在需要統(tǒng)計出人員表中有多少沒有加密的數(shù)據(jù),進行再次加密處理,這個時候,考慮到的就是求兩張表的差集,來找出未加密的人員。

求差集 SQL 腳本

select p.* from persons p
left join CERT_CNO_PNO_TAB c ON c.PERSON_BUSINESS_ID = p.id
where p.`status` = 'person.status.allow.yes' and p.del_flag = '0'
and c.id is null;

注意看,where 語句的最后一個條件。通過 left join 連表之后,再使用右表的 c.id is null 來進行過濾,最終可以得到 person 表與 CERT_CNO_PNO_TAB 表中的差集。

結(jié)果如下:

我們來驗證一下,看看求得的這個差集,在解密表中是否真的不存在。

select * from CERT_CNO_PNO_TAB where PERSON_BUSINESS_ID = '0f551c3e03e34e449e5b2e31b64efdc5';

結(jié)果如下:

可以看出,通過 left join 再加上 右表的條件過濾取的的差集,是正確的。

這種求差集的效率,遠比 not in 、not exist 要快的多,小伙伴們可以嘗試一下!

MySQL查兩個表之間的數(shù)據(jù)差集

需要查兩個表之間的差集

首先,想到的是主鍵直接not in

select mailbox_id from co_user where mailbox_id not in (select mailbox_id from core_mailbox);

好吧!這個是可以,但是數(shù)據(jù)多了的話,想到這個查詢的邏輯有點受不住

于是再改為下面的這樣:

select cu.mailbox_id,cm.mailbox_id from co_user as cu?
    left join core_mailbox as cm?
      on cu.mailbox_id = cm.mailbox_id?
        where cm.mailbox_id is NULL;

利用了left join的,然后進行對比,并且利用where進行篩選。

后面也在網(wǎng)上找了這條:

SELECT mailbox_id FROM `co_user` left join?
(select mailbox_id as i from core_mailbox) as t1
on co_user.mailbox_id= t1.i where t1.i is NULL;

概念上與第二條同理。

好吧! 回顧了一下left join

SQL LEFT JOIN 關(guān)鍵字

LEFT JOIN 關(guān)鍵字會從左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中沒有匹配的行。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • phpstudy中mysql無法啟動(與本地安裝的mysql沖突)的解決方式

    phpstudy中mysql無法啟動(與本地安裝的mysql沖突)的解決方式

    這篇文章主要給大家介紹了關(guān)于phpstudy中mysql無法啟動(與本地安裝的mysql沖突)的解決方式,文中通過圖文將解決的方法介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • MySql優(yōu)化之InnoDB,4GB內(nèi)存,多查詢的my.ini中文配置方案詳解

    MySql優(yōu)化之InnoDB,4GB內(nèi)存,多查詢的my.ini中文配置方案詳解

    本文是一個針對 4G 內(nèi)存系統(tǒng)(主要運行只有 InnoDB 表的 MySQL 并使用幾個連接數(shù)執(zhí)行復(fù)雜的查詢)的MySQL配置文件方案
    2018-03-03
  • MySQL視圖的概念、創(chuàng)建、查看、刪除和修改詳解

    MySQL視圖的概念、創(chuàng)建、查看、刪除和修改詳解

    視圖是指計算機數(shù)據(jù)庫中的視圖,是一個虛擬表,其內(nèi)容由查詢定義,下面這篇文章主要給大家介紹了關(guān)于MySQL視圖的概念、創(chuàng)建、查看、刪除和修改的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • MYSQL8如何快速修改root密碼

    MYSQL8如何快速修改root密碼

    MySQL8的改密碼跟MySQL5不同,很多朋友都遇到過這個問題,今天小編給大家講解下MYSQL8如何快速修改root密碼,需要的朋友可以參考下
    2023-05-05
  • 基于MySQL和Redis扣減庫存的實踐

    基于MySQL和Redis扣減庫存的實踐

    本文主要介紹了基于MySQL和Redis扣減庫存的實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • mysql 8.0.17 安裝與使用教程圖解

    mysql 8.0.17 安裝與使用教程圖解

    這篇文章主要介紹了mysql 8.0.17 安裝與使用教程圖解,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • MySQL表的增刪查改及聚合函數(shù)/group?by子句的使用方法舉例

    MySQL表的增刪查改及聚合函數(shù)/group?by子句的使用方法舉例

    這篇文章主要給大家介紹了關(guān)于MySQL表的增刪查改及聚合函數(shù)/group?by子句的使用方法,在MySQL中可以使用聚合函數(shù)與GROUP BY語句可以對數(shù)據(jù)進行分組并進行聚合計算,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • MySQL數(shù)據(jù)庫必備之條件查詢語句

    MySQL數(shù)據(jù)庫必備之條件查詢語句

    當(dāng)用戶查看表格的大量數(shù)據(jù)是,由于數(shù)據(jù)量過于巨大會導(dǎo)致很難獲取到需要的數(shù)據(jù),在這時,就需要一個方法,一個可以通過用戶輸入獲取到用戶需要的數(shù)據(jù)并回填入表格,這就是條件查詢的作用
    2021-10-10
  • MySQL數(shù)據(jù)庫索引order?by排序精講

    MySQL數(shù)據(jù)庫索引order?by排序精講

    我們今天說的并不是大數(shù)據(jù)下該如何優(yōu)雅的排序,如何提升排序性能的問題,我們來仔細(xì)分析說一說MySQL中的排序問題,希望可以對正在閱讀的同學(xué)們有所啟迪幫助
    2021-11-11
  • Mysql中的自連接問題

    Mysql中的自連接問題

    這篇文章主要介紹了Mysql中的自連接問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05

最新評論