zoukankan      html  css  js  c++  java
  • mysql 获取一张表中, 另一张表不存在的数据

       编写sql语句中,经常需要编写获取一张数据表中不存在与另一张表的数据,相关编写方法如下:

     方法1: 使用not in ,效率低下,在数据较小的情况下可以采用如下编写   

    SELECT 
    * 
    FROM a 
    WHERE 1=1
    AND a.Id NOT IN(
         SELECT
             Id
         FROM 
              B 
         WHERE 
             B.IsDeleted=0 
         GROUP BY B.Id
    ); 

     方法2:使用left join  较第一种方法快

    SELECT 
        * 
    FROM a
    LEFT JOIN b ON a.Id=b.Id 
    WHERE 1=1
    AND b.Id IS NULL; 

     方法3:速度最快,在应用到插入数据时,可在避免重复插入相同数据时又可以获取较快的时效,,速度比上两个快非常多

    SELECT
       *
    FROM a
    WHERE 
         1=1
         AND (
                SELECT 
                       COUNT(1)
                FROM b
                WHERE a.Id=b.Id
                   
         )=0;

    以上方法仅供参考,如有不正确之处及更快的方法,请留言指出,谢谢!

  • 相关阅读:
    HDU4126
    训练赛Day6-The 36th ACMICPC Asia Regional Beijing Site
    弦图
    HDU4821 字符串哈希+尺取
    HDU1854
    HDU1166
    输入输出挂
    LightOj 1027 数学期望
    HDU
    HDU
  • 原文地址:https://www.cnblogs.com/zty-Love/p/9894799.html
Copyright © 2011-2022 走看看