求条sql语句,如何读取一个表中的name字段,是另一张表中的字段name中没有的

vcinsect 2004-09-14 08:09:57
select * from tablea where name!= (select name from tableb) and id>3
我这样写会提示错误 请问我该怎么改呢?
...全文
93 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanyun1111 2004-09-15
  • 打赏
  • 举报
回复
up



同意楼上各位的说法。
spotboy 2004-09-14
  • 打赏
  • 举报
回复
UP!UP!我也来说另外一种办法:

就是使用ORACLE SQL操作的集合运算, 采用 Minus操作就可以了

假设我想要出TABA中不在TABB中的NAME,可以这样写:

SELECT NAME FROM TABA WHERE A.NAME MINUS (SELECT NAME FROM TABB) AND TABA.ID>3;

呵呵,这样和not exists也是一样的.

其他的集合操作还有: UNION[ALL], INTERSECT.
zakat 2004-09-14
  • 打赏
  • 举报
回复
不好意思,exits 改为exists
zakat 2004-09-14
  • 打赏
  • 举报
回复
同意!不过,当数据量比较大的时候,not in 会相对慢一些,你可以试试这个:
select * from taba a where a.name not exits(select b.name from tabb b where a.name = b.name) and id > 3;
chanet 2004-09-14
  • 打赏
  • 举报
回复
select * from tablea where name!= (select name from tableb) and id>3
-------------------------
一列到多列会产生错误~
改为:
select * from tablea where name not in (select name from tableb) and id>3

17,377

社区成员

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

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