mysql 获取一张表中, 另一张表不存在的数据

Posted zty_Love

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

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

 

以上是关于mysql 获取一张表中, 另一张表不存在的数据的主要内容,如果未能解决你的问题,请参考以下文章

sql语句 怎么从一张表中查询数据插入到另一张表中

oracle的数据库中怎么将一张表中数据插入另一张表,两张表都存在

mysql快速复制一张表的内容,并添加新内容到另一张表中

在 MySQL 中,如何将一张表的内容复制到同一个数据库中的另一张表中?

在 MySQL 中,如何将一张表的内容复制到同一个数据库中的另一张表中?

在 MySQL 中,如何将一张表的内容复制到同一个数据库中的另一张表中?