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本回答被网友采纳
相似回答