`

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
分享到:
评论

相关推荐

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

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

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

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

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

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

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

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

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

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

    如何使用SQL Server来过滤数据

    进一步地讲,规范化的含义就是:你不能在数据库中保存计算后的值,而你只能在需要的时候临时计算数据库中保存的值。对数据进行某些分析通常是很重要的。比方说,你或许想知道哪些产品的定单最多或者哪些定单的利润...

    SQLSERVER遍历数据

    SQLSERVER遍历数据存在于表中的哪些字段

    MS SQL Server中大数据量表的查询优化

    在MS SQL Server中如何处理记录条数2000万以上且每日增加20万条的数据表,相信是很多开发人员面临的难题.本文以实际案例描述了此问题的解决方法及其存在的问题.在SQL Server 2000中,可以通过分区视图的定义来支持...

    SQLSERVER数据库全数据库表数据查找

    在SQLSERVER数据库中,输入字符串,在所有的表数据中查询哪个表存在,方便探索未知的数据库表结构

    在SQL Sever中判断数据库、表是否存在并新建的代码

    呕心沥血两星期,终于完成了用delphi根据用户配置在SQL Sever中判断数据库、表是否存在,如果不存在,新建用户配置文件中的数据库、数据表的功能。为了让广大像我曾经一样迷惘的初级程序员快速的掌握delphi开发Sql ...

    SqlMDF数据提取工具

    8、在Sql Server运行在简单日志模式、完全日志模式或者大容量日志记录模式下数据被误(drop、delete、truncate)删除表恢复,updata后的数据恢复等。 9、Sql Serve文件无法附加情况下的数据恢复。 10、Sql Server...

    Excel数据导入到SQLServer数据库中

    将Excel数据导入到SQLServer中,可以选择要导入的Excel文件和Sheet名称,表名。通过自动编写存储过程来实现导入功能。实际使用无须这么麻烦,可以作为数据导入和存储过程参考例子。

    mysql实现从导出数据的sql文件中只导入指定的一个表

    今天因发现某一个表tableA的一条数据存在问题,需核对两条记录的变化。需从dbAll中找回tableA的数据,以便比较该记录。 操作方案 1.将dbAll.sql.gz导入待比较的数据库(临时数据库)中,然后比较tableA。不推介,因为...

    MySQL数据库:表的创建SQL语句.pptx

    if not exists ,加一个判断,只有该表不存在时才执行 engine=存储引擎,mysql支持多存储引擎,不同的表可以有不同的存储引擎 表的创建 显示数据库表结构语法格式 {describe | desc} 表名 [列名 | 通配符]; 说明: | ...

    sql将一个表中的数据插入到另一个表中的方法

    列名不一定要相同,只要你在HH中列出要插入列的列表跟select from mm表中的选择的列的列表一一对应就可以了,当然两边的数据类型应该是兼容的。 insert into hh (fielda,fieldb,fieldc) select fieldx,fieldy,fieldz...

    在SQL Server数据库之间进行数据导入导出

    在使用SELECT INTO语句时,INTO后跟的表必须在数据库不存在,否则出错,下面是一个使用SELECT INTO的例子。  假设有一个表table1,字段为f1(int)、f2(varchar(50))。 SELECT*INTO table2 FROM table1

    基于SQL Server中如何比较两个表的各组数据 图解说明

    前一阵子,在项目中碰到这样一个SQL查询需求,有两个相同结构的表(table_left & table_right),如下: 图1. 检查表table_left的各组(groupId),是否在表table_right中存在有一组(groupId)数据(data)与它的数据(data...

    sql完整性约束参数的使用

    实现SQL Server的数据完整性 SQL Server 2000支持下列五类约束: ...(4)FOREIGN KEY约束(外键约束):定义数据库表中指定列上插入或更新的数值必须在另一张被参照表中的特定列上存在。 (5)UNIQUE约束(惟一约束)

    跟我学 SQL ——基本结构化查询语言

    最新的版本是SQL-99,还有一个新标准SQL-200n尚处于制定过程中。大多数的数据库都至少遵守ANSI-92标准的部分子集。不过,目前对最新标准的有效性还存在一些争论。专有数据库制造商根据这些标准开发自己的产品,同时...

    SQL Server数据库实验_创建和修改数据表及数据完整性.doc

    在企业管理器中实现表的创建和修改等工作及使用T—SQL语句CREATE TABLE、ALTER TABLE及DROP TABLE来实现数据表的创建、修改及删除。 三、实验设备 安装有SQL SERVER 2000的计算机。 四、实验内容 示例是某公司的...

Global site tag (gtag.js) - Google Analytics