SQL怎么查询两个表中不同的数据

比如a表,三个字段(产权证号,产权人,坐落),表B也是这三个字段(产权证号,产权人,坐落),然后表a里有十条数据,表B里有3条数据。那怎么通过脚本,把表a里的除了表B里的3条数据之外的7条数据查出来呢?

工具/材料:Management Studio。

1、首先在桌面上,点击“Management Studio”图标。

2、其次在该界面中,点击“新建查询”按钮。

3、继续在该界面中,输入查询两个表中不同的数据的SQL语句。

4、再者在该界面中,点击“执行”按钮。

5、最后在该界面中,显示两个表中不同的数据。

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-03-16

使用except函数,select * from B where (select count(1) from A where A.ID = B.ID) = 0.

方法一(推荐)

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     ConsumerCouponApply A

GROUP BY A.Name

EXCEPT

SELECT   B.Name

FROM     ConsumerCouponApply B

GROUP BY B.Name

)

SELECT  COUNT(1)

FROM    C

方法三

SELECT  COUNT(A.Name)

FROM    ConsumerCouponApply A

LEFT JOIN ConsumerCouponApply B ON A.Name = B.Name

WHERE   B.ID IS NULL

扩展资料:

高级查询运算词:

A: UNION 运算符:

UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个

结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行

不是来自 TABLE1 就是来自 TABLE2。

B: EXCEPT 运算符

EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。

C: INTERSECT 运算符

INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当

ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。

注:使用运算词的几个查询结果行必须是一致的。



第2个回答  2018-08-01

假设两个表都有唯一键UserID

可以这么写(使用全连接【full outer join】:完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。)

select
    *
from
    RCSA_UserInfoDEL a
    full outer join RCSA_UserInfo b on a.UserID=b.UserID
where
    a.UserID is null
    or b.UserID is null

本回答被网友采纳
第3个回答  推荐于2017-12-16
sql server 2005之后有自带的函数可以处理这个功能,用except可以处理
select * from a
except
select * from b
可以参考:http://blog.csdn.net/tjvictor/article/details/5346024本回答被网友采纳

SQL怎么查询两个表中不同的数据?
1、首先,打开sql查询器,连接上相应的数据库表,以查询c1表和c2表的name字段不同为例。2、点击“查询”按钮,输入:select c1.`name` from c1 left join c2 on c1.`name`=c2.`name` where c2.`name` is null union select c2.`name` from c2 left join c1 on c1.`name`=c2.`name...

SQL怎么查询两个表中不同的数据
1、首先在桌面上,点击“Management Studio”图标。2、其次在该界面中,点击“新建查询”按钮。3、继续在该界面中,输入查询两个表中不同的数据的SQL语句。4、再者在该界面中,点击“执行”按钮。5、最后在该界面中,显示两个表中不同的数据。

SQL 查找两表中不同的数据
使用except函数,select * from B where (select count(1) from A where A.ID = B.ID) = 0.方法一(推荐)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...

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

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条)...

查询两个相同表中不同记录,这样的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表里的记录...

ACCESS中有2个表,想找出2个表不一样的数据,SQL查询怎么写?
3、SELECT t2.* FROM t2 LEFT JOIN t1 ON t2.id=t1.id WHERE t1.id is null 三种方法都得不到所想要的不同内容的结果(VB编程,语法正确,结果为空),崩溃了。我有表1=Standard_Data1 ,表2=Standard_Data2,两个表里面只有1列数据为MSISDN,下面SQL语句没法找到不同的内容。select * ...

MySQL双表查询如何在两个表中检索数据mysql中两表查询
MySQL双表查询是实现复杂查询的一种常见方式,它可以在多个表中查询和检索数据。在实际项目中,深入掌握MySQL双表查询技术,能够为数据查询分析提供强有力的支持。在查询时,需要确保表之间有正确且唯一的关联键,同时要灵活使用MySQL SQL语句中的关键字JOIN、INNER JOIN、LEFT JOIN、RIGHT JOIN等等,以实现...

sql 两张表怎么查询不重复的记录
sql 查询不重复的记录 可以使用 having count group by 组合 先把不重复数据的id查询出来 通过count()计算 只有数目为1的才是不重复的数据 select b.* from table b where b.id in(select a.id from table a group by a.name having count(a.id) <2)\/\/其中 name重复的数据的列名 ...

SQL语句:对比两张表的数据并筛选出数据不同的
SQL语句对比两张表的数据并筛选出数据不同的公式如下:select A.* from A, Bwhere A.A1=B.B1 -- 相同主键,做表连接.and A.A2 <> B.B2 -- 条件:A2不等于B2.and A.A3 <> B.B3 -- 条件:A3不等于B3.知识延展:sql 语句是对数据库进行操作的一种语言。结构化查询语言(Structured ...

相似回答