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

JJYY0088 2015-09-09 11:56:00
两个数据库 dataA,dataB

两个数据库中都有结构一样的表 table1,table1中有一列 cardNo

怎么查询 [dataA].[dbo].[table1] 表中存在的cardNo 而 [dataB].[dbo].[table1] 中不存在的 数据呢,我这样做查不到数据时什么原因呢:
SELECT * FROM [dataA].[dbo].[table1] WHERE cardNo not in(
SELECT cardNo FROM [dataB].[dbo].[table1]
)


怎么个查询法 ???


...全文
506 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cgl4134 2015-09-11
SELECT * FROM [dataA].[dbo].[table1]  a left join [dataB].[dbo].[table1] b on a.cardNo = b.cardNo where b.cardNo is null
回复
Pact_Alice 2015-09-09
SELECT * FROM [dataA].[dbo].[table1] a WHERE cardNo not exists( SELECT 1 FROM [dataB].[dbo].[table1] b WHERE b.cardNo=a.cardNo )
回复 1
Ny-6000 2015-09-09
引用 1 楼 Landa_Alice 的回复:
SELECT * FROM [dataA].[dbo].[table1] a WHERE cardNo not exists( SELECT 1 FROM [dataB].[dbo].[table1] b WHERE b.cardNo=a.cardNo )
推荐/..
回复
frankl123 2015-09-09
参考一楼。。。
回复
frankl123 2015-09-09
使用not in 要考虑到null的情况,如果存在null的则默认不返回数据 not in 等价于cardNo <> 1 and cardNo <>2 and cardNo <> null .....
SELECT * FROM [dataA].[dbo].[table1] WHERE cardNo not in(
	SELECT cardNo FROM [dataB].[dbo].[table1] where cardNo is not null
)
或者参考二楼
回复
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2015-09-09 11:56
社区公告
暂无公告