日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

【MySQL】求差集

發布時間:2024/1/18 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【MySQL】求差集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

項目的數據庫從Oracle更換到了MySQL,導致很多sql需要重寫,其中有一個sql是需要求兩個結果的差集(不要問我為什么不在Java代碼里處理,問就是老板不讓這么干),百度到一個大佬的文章,其中分析的很到位,但是那個sql在實際使用中有一定的局限性,個人認為它實際上并不是完全的求差集(如果左表有部分數據在右表沒有的話,則這一部分數據查不出來,可能有些大佬說不可能存在這種情況,那可能是你的業務沒有涉及到),sql語句和鏈接我也會貼在文末,有感興趣的大佬可以去看看;另外本文的sql執行效率在數據量比較大的情況下也沒有驗證過,如果有哪位大佬有條件,可以驗證一下告知一下小弟;

  • 先來創建兩個表和數據 CREATE TABLE `test1` (`id` int NOT NULL,`name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,`age` int DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;CREATE TABLE `test2` (`id` int NOT NULL,`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,`age` int DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;INSERT INTO `test`.`test1` (`id`, `name`, `age`) VALUES (1, 't11', 10); INSERT INTO `test`.`test1` (`id`, `name`, `age`) VALUES (2, 't12', 11); INSERT INTO `test`.`test1` (`id`, `name`, `age`) VALUES (3, 't13', 12);INSERT INTO `test`.`test2` (`id`, `name`, `age`) VALUES (1, 't21', 20); INSERT INTO `test`.`test2` (`id`, `name`, `age`) VALUES (4, 't24', 24); INSERT INTO `test`.`test2` (`id`, `name`, `age`) VALUES (5, 't25', 25);
  • 根據數據分析,那么差集應該是id等于2,3,4,5的數據?
  • 直接查出各自缺的那部分,再UNION合并即可 SELECTt1.* FROMtest1 t1LEFT JOIN test2 t2 ON t1.id = t2.id WHEREt2.id IS NULL UNION SELECTt2.* FROMtest1 t1right JOIN test2 t2 ON t1.id = t2.id WHEREt1.id IS NULL

    以上就是獲取兩個差集的整個過程了,如果有哪位大佬有更好的思路,歡迎指正;
    以下是另一位大佬的求差集的sql和鏈接,有興趣的朋友可以去看看; select id FROM usertable LEFT JOIN (select id as i from blog) as t1 ON usertable.id=t1.i where t1.i IS NULL 【Mysql】求兩個表(查詢結果)的差集_編程記錄,親測有效-CSDN博客_mysql求差集
  • 總結

    以上是生活随笔為你收集整理的【MySQL】求差集的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。