求助. 两张没有关系的表该如何比较?

C_vincent 2014-07-31 03:25:20
我有两张表,a表和b表 想按照id和输入时间进行比较如果a.id = b.id and a.sj <> b.sj 就获取这条数据, 但因为这两张表没有关联,我的查询语句不管怎么写都不对, 求大神帮忙..
select * from a where exists (select 1 from b where a.id = b.id and a.sj <> b.sj) 这是我原来写的sql , 查询的数据总会比我想要查的多.
...全文
203 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
C_vincent 2014-07-31
  • 打赏
  • 举报
回复
引用 3 楼 huangdh12 的回复:
select * from a a where exists (select 1 from b b where a.id=b.id and a.sj<>b.sj) and not exists (select 1 from b b where a.id=b.id and a.sj=b.sj) 这样?
三楼正解. 同样谢谢bw555 ..
bw555 2014-07-31
  • 打赏
  • 举报
回复
oracle的时间是带小时分秒的,改为trunc(a.sj) <> trunc(b.sj)只比较日期试下
huangdh12 2014-07-31
  • 打赏
  • 举报
回复
select * from a a where exists (select 1 from b b where a.id=b.id and a.sj<>b.sj) and not exists (select 1 from b b where a.id=b.id and a.sj=b.sj) 这样?
C_vincent 2014-07-31
  • 打赏
  • 举报
回复
时间这个字段是有的为空,有的不为空的, 但我用一个id作为条件去限制查询的时候, 本来a, b 表对比只应该查出一条数据, 但运行之后查出三条来, 而且, 时间都不空.. 我不知道它究竟是怎么运行来对比的. 为什么会出现这种状况?
bw555 2014-07-31
  • 打赏
  • 举报
回复
语句看着没什么问题 可以先查一下 a b 两个表中是否有ID或时间为空的数据 这类数据可能会造成查询的范围扩大

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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