`

SQL查询存在一个表而不在另一个表中的数据

 
阅读更多

A、B两表,找出ID字段中,存在A表,但是不存在B表的数据。A表总共13w数据,去重后大约3W条数据,B表有2W条数据,且B表的ID字段有索引。

方法一

  使用 not in ,容易理解,效率低 ~执行时间为:1.395秒~

1 select distinct A.ID from  A where A.ID not in (select ID from B)

方法二

  使用 left join...on... , "B.ID isnull" 表示左连接之后在B.ID 字段为 null的记录 ~执行时间:0.739秒~

1 select A.ID from A left join B on A.ID=B.ID where B.ID is null

  图解

方法三

  逻辑相对复杂,但是速度最快 ~执行时间: 0.570秒~

1  select * from  A 
2     where (select count(1) as num from B where A.ID = B.ID) = 0
分享到:
评论

相关推荐

    sqlserver中判断表或临时表是否存在

    在 SQL Server 中判断表或临时表是否存在是非常重要的操作,以下将详细介绍如何判断表或临时表是否存在。 判断数据表是否存在 判断数据表是否存在可以使用两种方法。 方法一:使用 object_id 函数 使用 `object_...

    SQL Server中关于临时表概念及创建和插入数据等问题

    如果要插入数据到临时表中,需要在同一个连接中执行插入操作,否则将会报错。 在插入数据时,需要注意临时表的生命周期。如果在插入数据时,连接关闭,临时表将被删除,数据将丢失。因此,在插入数据前,需要确保...

    Oracle中对两个数据表交集查询简介

    Oracle关系型数据库管理系统是世界上流行的关系数据库,它是一个极其强大、灵活和复杂的系统,本文向大家介绍使用SQL查两个Oracle数据表查询的相同数据的方法。第一种方法:利用操作符intersect,intersect操作符...

    VB判断SQL表是否存在

    在VB程序中,判断在SQL数据库中,是否存在表,是否存在

    Oracle中如何用SQL检测字段是否包括中文字符

    有一个同事的数据迁移程序有个问题,没有考虑中文编码字符,由于迁移的表有几千万数据,但是有中文的记录集很少,问我能否找出有中文内容的记录数。首先我想到的是采用检测每个字节ASCII的方式,这样的话需要写一个...

    Sql Server数据库中检查是否存在某张表

    有时候,我们的业务可能会这样要求:某张表是动态的,他要求每隔一段时间(如:一个月)自动生成一张结构相同的新表(如:日志表Log),这是我们要判断数据库中是否存在某张表,如果没有,则新建一张表,否者直接...

    第三章SQL数据查询嵌套查询优秀文档.ppt

    在嵌套查询中,一个SELECT-FROM-WHERE语句称为一个查询块,将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询。 例如,下面是一个嵌套查询的示例: SELECT Sname FROM Student ...

    管家婆辉煌版top+SQL数据字典.doc

    在管家婆辉煌版top+SQL数据字典中,数据库表之间存在着复杂的关系。例如,商品信息库(ptype)与往来单位信息库(btype)之间存在关联关系,都是用于存储商品信息的库,而商品信息库(ptype)又与其他表之间存在关联关系,...

    oracle到sqlserver 跨库查询

    在 Oracle 数据库中,需要创建一个与网关关联的数据库链接,以便实现数据的抽取和传输。 四、数据抽取 数据抽取是跨库查询的目的。通过网关工具,可以将 SQL Server 数据库中的数据抽取到 Oracle 数据库中。这个...

    sqlserver无主键表的同步方案1

    在SQL Server环境中,数据库同步是一项重要的任务,尤其在有多个数据源或需要实时更新的数据仓库中。当面临无主键的表同步时,传统的发布订阅方式可能无法满足需求,因为这种方式通常依赖于主键来跟踪和同步数据变化...

    sql子查询总结

    SQL 子查询是一种在 SQL 语言中嵌套在另一个查询的查询条件中的查询语句。子查询总是写在圆括号中,可以用在使用表达式的任何地方,如 Select、Insert、Update 或 Delete 语句或其他子查询中。 子查询也称为内部...

    sql server 2008 递归查询所有上级或下级数据

    sql server 2008 递归查询所有上级或下级数据

    SQL表中数据处理.ppt

    在SQL Server 2000中,数据处理是数据库管理的核心任务,主要涉及对表中的数据进行添加、修改和删除操作。以下是对这些关键概念的详细说明: **1. 数据类型的理解** 在SQL Server 2000中,数据类型定义了列可以存储...

    Sql中判断是否存在数据库、表

    在sqlserver中判断是否存在某个数据库或者表格

    删除A表中在B表中不存在的数据

    部分内容中提供了一个SQL语句的示例,用于删除A表中在B表中不存在的数据。 select UserName from TableA where UserName not in (select UserName from TableB where TableA.UserName=TableB.UserName) order by ...

    详解SQL Server分布式查询

    如果没有,需要查询数据库,而此时数据要求查询多个远程服务器上多个数据库中表,这时利用分布式查询。获得数据,然后更新我们在缓存服务器MemCache Server上的数据,保持数据更新同步,同时向客户端Client直接返回...

    SQL查询字段被包含语句

    `CHARINDEX`是SQL Server中的一个字符串函数,它返回一个指定的子字符串在另一个字符串中首次出现的位置。如果子字符串不存在,它将返回0。这个函数可以帮助我们一次性检查多个关键词是否包含在目标字段中。例如,要...

    使用SQL Server判断文件是否存在后再删除(详解)

    在SQL Server中,有时我们需要对数据库外部的文件进行操作,比如判断文件是否存在或者根据需要删除文件。本篇文章将详细介绍如何使用SQL Server内置的扩展存储过程来实现这一目标,特别是当文件可能包含空格时如何...

    sql多表查询语句与方法

    例如,`SELECT a.*, b.* FROM city AS a FULL OUTER JOIN user AS b ON a.username=b.username`,这将包含city表和user表的所有作者及其所在城市,即使某些作者或城市在另一个表中不存在。 4. **CROSS JOIN(交叉...

    SQL2005中数据导入.

    在SQL Server 2005中,数据导入和导出是一项基本操作,它允许用户将数据从一个数据库传输到另一个数据库,或者从外部文件(如CSV、Excel等)加载到SQL Server。对于初学者来说,了解这个过程是至关重要的,因为这在...

Global site tag (gtag.js) - Google Analytics