查询两个相同表中不同记录,这样的SQL语句怎么写?

如题所述

可以用求非交集的办法获取这些记录,写法可以多种多样,具体要视表结构和比对要求而定。

请参考下列例子:

假设A、B两表结构一样,选出两张表中id字段互不相同的记录

select * from A where not exists

(select 1 from B where B.id=A.id) 

union all 

select * from B where not exists

(select 1 from A where A.id=B.id); 

说明:第一个子查询选出A表中未出现于B表里的记录;第二个子查询选出B表中未出现于A表里的记录。两者合并即为互不相同的记录。

    结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

    结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

温馨提示:内容为网友见解,仅供参考
无其他回答

查询两个相同表中不同记录,这样的SQL语句怎么写?
说明:第一个子查询选出A表中未出现于B表里的记录;第二个子查询选出B表中未出现于A表里的记录。两者合并即为互不相同的记录。结构化查询语言(Structured Query Language)简称SQL(发音:\/ˈes kjuː ˈel\/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语...

sql问题:在两个相同的表中找出不同的记录.
select * from a where not exists(select * from b where a.col_a=b.col_a and a.col_b=b.col_b) union select * from b where not exists(select * from a where a.col_a=b.col_a and a.col_b=b.col_b)以上得出两表中所有不同记录(a表中第三条,b表中3、4条)...

oracle中怎么查俩个一摸一样的表中数据不一样的行
在Oracle中,若要查找两个完全相同表中数据存在差异的行,可以通过自连接实现。具体查询语句如下:SELECT * FROM table AS T1,table AS T2 WHERE T1.age = T2.age AND T1.score = T2.score;解释一下这个语句的含义:首先,使用“AS”关键字为两个表分别命名T1和T2。这样,我们可以将这两个表...

SQL查询两个表相同的两个字段里不同的数据有哪些
1、首先得出两个表的并集 注:full join :存在匹配,匹配显示;同时,将各个表中不匹配的数据与空数据行匹配进行显示。可以看成是左外连接与右外连接的并集。图中结果左侧两列为TABLE1,右侧两列为TABLE2。前三条记录表示TABLE1和TABLE2都有的数据。TABLE1项为NULL的记录说明TABLE2中无相同项。同理...

SQL 求助,求查询两表中相同字段中的不同取值
select s from table2 where not exists(select 1 from table1 where table1.s=table2.s)解释:select s from table2 --取表2中s not exists(select 1 from table1 where table1.s=table2.s)--在表1中不存在的s记录为条件

SQL 查找两表中不同的数据
方法一(推荐)WITH C AS ( SELECT Name FROM ConsumerCouponApply A WHERE NOT EXISTS ( SELECT 1 FROM ConsumerCouponApply B WHERE B.Name = A.Name GROUP BY B.Name )GROUP BY A.Name )SELECT COUNT(1)FROM C 方法二 WITH C AS ( SELECT A.Name FROM ...

SQL怎么查询两个表中不同的数据?
SQL查询两个表中不同数据的步骤如下:我们需要准备的材料分别是:电脑、sql查询器。1、首先,打开sql查询器,连接上相应的数据库表,以查询c1表和c2表的name字段不同为例。2、点击“查询”按钮,输入:select c1.`name` from c1 left join c2 on c1.`name`=c2.`name` where c2.`name` is ...

查询MYSQL同一个数据库2张表的不同字段值语句怎么写
查询两张表的不同字段,一般通过连接(JOIN)来实现,需要两张表有能够相互关联的字段。如果没有任何关联字段,直接查两个字段的话,就会出现笛卡尔积(结果为T1和T2字段的集合,结果条数为T1*T2)。假设你的需求是两张表有关联字段ID,以内连接为例,则SQL可以写为:SELECT T1.C1,T2.C2 FROM T1 ...

在VB中关于两个表中查询不重复记录的SQL语句
若你想将查得结果存为未选课程表ADODC,那就:create table ADODC as (select 课程号,... from 所有课程 where 开课院系='物理' and 课程号 not in (select 课程号 from 已选课程))或者你事先已建好未选课程表ADODC,那就:insert into ADODC select 课程号,... from 所有课程 where 开课...

sqlserver中,如何查询两个字段相同,记录有不同的表中的那些不同记录
select num from (select num from A表 union all select num from B表 ) a where a.num not in (select num from A表,B表 where A表.num=B表.num )

相似回答