sql查询简单问题。

溺水的鱼 2006-06-06 12:41:20
有两个表a,b
a,b中有一个相同的字段id
现在要查询a中id字段有的,而在b中没有的纪录。
谁能给我写个sql语句阿
...全文
143 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dudongxiao 2006-06-06
  • 打赏
  • 举报
回复
select a.* from a
where a.id not in (select b.id from b)
yqwd911 2006-06-06
  • 打赏
  • 举报
回复
假設b中另外一個不會為null的欄位name
那麽SQL:
select a.* from a,b
where a.id=b.id(+)
and b.name is null
dudongxiao 2006-06-06
  • 打赏
  • 举报
回复
select a.* from a
where a.id not in (select b.id from b)
这个是能选出来不同的,但是一条记录显示了多次。。。


不明白,不可能出现重复记录,除非你表a中,本身就有重复记录
溺水的鱼 2006-06-06
  • 打赏
  • 举报
回复
樓主你怎麽不試試2樓我的SQL呢?

你只需要在表中找一個不會為Null的欄位把那個Name換掉就可以了。
執行效率比not in效率高

不好意思,你说的我不太明白,欄位是什么啊?
yqwd911 2006-06-06
  • 打赏
  • 举报
回复
樓主你怎麽不試試2樓我的SQL呢?

你只需要在表中找一個不會為Null的欄位把那個Name換掉就可以了。
執行效率比not in效率高
rainstormed 2006-06-06
  • 打赏
  • 举报
回复
select * from a where id not in
(select id from b)
溺水的鱼 2006-06-06
  • 打赏
  • 举报
回复
补充一下:
比如a中id字段有值1,2,3;b中id字段有值2,3
那么就输出a中id=1的纪录。
溺水的鱼 2006-06-06
  • 打赏
  • 举报
回复
select a.* from a
where a.id not in (select b.id from b)
这个是能选出来不同的,但是一条记录显示了多次。。。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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