这个查询怎么实现,在线等待!!!!!!!!!!!!!!!!!!!!!!

huangjianfen 2009-04-01 09:37:39
大家好,我有两个表:T1,T2,两个表的字段是一样的,有7列,但字段A和字段B的数据可能不一样,其余数据一样。
我想查询出表T1里A,B任何一列在表T2中没有的数据。
我是这样写的:
select * from jam_T1
where not exists (select A.* from T1 , T2
where rtrim(T1.A)=rtrim(T2.A) and rtrim(T1.B)=rtrim(T2.B))

首先T1有1000行,
select A.* from T1 ,T2 where rtrim(T1.A)=rtrim(T2.A) and rtrim(T1.B)=rtrim(T2.B)
查出300行

select * from jam_T1
where not exists (select A.* from T1 , T2
where rtrim(T1.A)=rtrim(T2.A) and rtrim(T1.B)=rtrim(T2.B))
却一行都没有,是怎么回事?
...全文
92 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
等不到来世 2009-04-01
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 huangjianfen 的回复:]
可是有一点不明
这个怎么不行
select * from T1
where not exists (select T1.* from T1 a ,T2 b
where rtrim(a.A)=rtrim(b.A) AND rtrim(a.B)=rtrim(b.B) )
[/Quote]
两个T1没任何关联。
要关联起来,使它们指向同一个表,要使用别名。
huangjianfen 2009-04-01
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 mugua604 的回复:]
SQL code
select * from T1 a
where not exists (select * from T2
where rtrim(A)=rtrim(a.A) OR rtrim(B)=rtrim(a.B) )
[/Quote]
应该为:
select * from T1 a
where not exists (select * from T2
where rtrim(A)=rtrim(a.A) AND rtrim(B)=rtrim(a.B) )

OK了
可是有一点不明
这个怎么不行
select * from T1
where not exists (select T1.* from T1 a ,T2 b
where rtrim(a.A)=rtrim(b.A) AND rtrim(a.B)=rtrim(b.B) )

mugua604 2009-04-01
  • 打赏
  • 举报
回复

select * from T1 a
where not exists (select * from T2
where rtrim(A)=rtrim(a.A) OR rtrim(B)=rtrim(a.B) )


huangjianfen 2009-04-01
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 mugua604 的回复:]
SQL code
select * from T1 a
where not exists (select * from T2
where rtrim(A)=rtrim(a.A))
[/Quote]


有两列呀A,B
mugua604 2009-04-01
  • 打赏
  • 举报
回复

select * from T1 a
where not exists (select * from T2
where rtrim(A)=rtrim(a.A))

huangjianfen 2009-04-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hyrongg 的回复:]
SQL code
select * from jam_T1
where not exists (
select 1 FROM T2
where rtrim(T2.A)=rtrim(T1.A) and rtrim(T2.B)=rtrim(T1.B)
)
[/Quote]

这个也不行
huangjianfen 2009-04-01
  • 打赏
  • 举报
回复
写错了,只有两个表,jam_T1应为T1


等不到来世 2009-04-01
  • 打赏
  • 举报
回复
select * from T1  t
where not exists (select 1 from T2 where rtrim(A)=rtrim(t.A) and rtrim(B)=rtrim(t.B))
huangjianfen 2009-04-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 huangjianfen 的帖子:]

select * from jam_T1
where not exists (select A.* from T1 , T2
where rtrim(T1.A)=rtrim(T2.A) and rtrim(T1.B)=rtrim(T2.B))
[/Quote]
写错了:
select * from T1
where not exists (select A.* from T1 , T2
where rtrim(T1.A)=rtrim(T2.A) and rtrim(T1.B)=rtrim(T2.B))


是T1不是jam_T1
htl258_Tony 2009-04-01
  • 打赏
  • 举报
回复
select * from jam_T1 t 
where not exists (select T1.* from T1 , T2
where rtrim(T1.A)=rtrim(T2.A) and rtrim(T1.B)=rtrim(T2.B) and t.ID=t1.ID)
要类似这样.
mugua604 2009-04-01
  • 打赏
  • 举报
回复
[code=SQL]
select A.* from T1 ,T2 where rtrim(T1.A)=rtrim(T2.A) and rtrim(T1.B)=rtrim(T2.B)
--这一步你已经查出有数据存在了

not exists (select A.* from T1 , T2
where rtrim(T1.A)=rtrim(T2.A) and rtrim(T1.B)=rtrim(T2.B))
--这条语句实际上就等于 假了 也可以好比1=0

select * from jam_T1
where not exists (select A.* from T1 , T2
where rtrim(T1.A)=rtrim(T2.A) and rtrim(T1.B)=rtrim(T2.B))
--所以不关jam_T1 里有多少数据
select * from jam_T1 where 1=0 永远都为空
[code]
htl258_Tony 2009-04-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 huangjianfen 的回复:]
select * from jam_T1
where not exists (select A.* from T1 , T2
where rtrim(T1.A)=rtrim(T2.A) and rtrim(T1.B)=rtrim(T2.B))

改为

select * from jam_T1
where not exists (select T1.* from T1 , T2
where rtrim(T1.A)=rtrim(T2.A) and rtrim(T1.B)=rtrim(T2.B))
[/Quote]
子查询要跟 jam_T1 建立关联关系.
mugua604 2009-04-01
  • 打赏
  • 举报
回复


select * from jam_T1
where not exists (select A.* from T1 , T2
where rtrim(T1.A)=rtrim(T2.A) and rtrim(T1.B)=rtrim(T2.B))
以上语句应该等于
select * from jam_T1 where 1<>1

false =not exists (select A.* from T1 , T2
where rtrim(T1.A)=rtrim(T2.A) and rtrim(T1.B)=rtrim(T2.B))


mugua604 2009-04-01
  • 打赏
  • 举报
回复


select * from jam_T1
where not exists (select A.* from T1 , T2
where rtrim(T1.A)=rtrim(T2.A) and rtrim(T1.B)=rtrim(T2.B))
以上语句应该等于
select * from jam_T1 where 1<>1

false =not exists (select A.* from T1 , T2
where rtrim(T1.A)=rtrim(T2.A) and rtrim(T1.B)=rtrim(T2.B))


hyrongg 2009-04-01
  • 打赏
  • 举报
回复

select * from jam_T1
where not exists (
select 1 FROM T2
where rtrim(T2.A)=rtrim(T1.A) and rtrim(T2.B)=rtrim(T1.B)
)
huangjianfen 2009-04-01
  • 打赏
  • 举报
回复
select * from jam_T1
where not exists (select A.* from T1 , T2
where rtrim(T1.A)=rtrim(T2.A) and rtrim(T1.B)=rtrim(T2.B))

改为

select * from jam_T1
where not exists (select T1.* from T1 , T2
where rtrim(T1.A)=rtrim(T2.A) and rtrim(T1.B)=rtrim(T2.B))
为什么选择这门课程?在当今数字化时代,电子商务是一个不断增长的领域,而 Shopify 是其中的领导者之一。本课程将带你深入了解 Shopify 的模板二次开发,让你能够:掌握 Shopify 模板二次开发技术:无需从零开始,我们将从基础到高级技巧,为你提供全面的知识体系。获取高薪客户:了解如何吸引潜在客户,提供二次开发服务,以及如何建立长期合作关系。 实现月入破 3000 美元:通过 Shopify 模板二次开发,你将学会如何将你的技能转化为稳定的收入来源,实现财务自由。课程亮点:Shopify 模板二次开发基础:从模板结构和代码理解开始,逐步深入学习 Shopify 模板的二次开发。实际项目案例:通过实际项目案例,你将学习如何应用你的技术知识,解决实际问题,并获得收入。客户获取和合作:了解如何找到潜在客户,进行销售,建立信任,并长期合作。电子商务知识:除了技术,你还将学习电子商务的基础知识,帮助你更好地理解客户需求。谁适合参加?程序员和开发者:无论你是有经验的程序员还是初学者,只要你想要学习 Shopify 模板二次开发技术,这门课程都适合你。想要增加收入的人:如果你寻求额外的收入来源,通过提供 Shopify 模板二次开发服务,你将获得实现这一目标的机会。课程结构:这个课程结合了视频教程、示例项目和练习,让你能够灵活学习。无论你的经验水平如何,我们都将为你提供个性化的支持,以确保你能够掌握这一高需求的技能。你的未来等待着你!Shopify 模板二次开发技术赚钱课程将为你打开创收之门,让你能够通过技术实现财务自由。现在就加入我们,探索这个激动人心的领域,开始实现你的收入梦想!立即报名,开启你的 Shopify 模板二次开发之旅!点击链接,获取课程详情和报名信息。别再等待了,开始改变你的职业生涯和财务状况吧!这份课程说明突出了课程的针对性、目标受众、课程内容和学习方法,以吸引程序员学员并鼓励他们掌握这一高度有用的技能。希望这份说明能够吸引潜在学员并激发他们的兴趣!

22,210

社区成员

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

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