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

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]
)


怎么个查询法 ???


...全文
690 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复 1
SELECT * FROM [dataA].[dbo].[table1] a WHERE cardNo not exists( SELECT 1 FROM [dataB].[dbo].[table1] b WHERE b.cardNo=a.cardNo )
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
)
或者参考二楼

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧