如何查询表A中的某字段的值在表B中不存在?

我有两张表A,B,两张表都有number字段,但内容只有一部分是相同的。请问我该如何查询B中所有在A中不存在的number?... 我有两张表A,B , 两张表都有number字段 ,但内容只有一部分是相同的。请问我该如何查询B中所有在A中不存在的number ? 展开
 我来答
badkano
推荐于2017-09-23 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885365
团长

向TA提问 私信TA
展开全部

用not in语句来实现。

1、测试表创建,插入数据:

create table a
(id int,
name varchar2(10));

create table b
(id int);

insert into a values (1,'a');
insert into a values (2,'b');
insert into a values (3,'c');
insert into a values (4,'d');
insert into a values (5,'e');

insert into b values (1);
insert into b values (3);

2、查询b表中存在的id不出现在a表中的内容,可用语句:

select * from a where id not in (select id from b);

3、结果:

freechan10
2020-02-05 · TA获得超过2.9万个赞
知道小有建树答主
回答量:263
采纳率:68%
帮助的人:12.7万
展开全部

1、创建测试表,

create table test_tbl_a(num number);

create table test_tbl_b(num number);

2、插入测试数据;

insert into test_tbl_a values (1);

insert into test_tbl_a values (2);

insert into test_tbl_b values (1);

insert into test_tbl_b values (2);

insert into test_tbl_b values (3);

insert into test_tbl_b values (4);

commit;

3、查询B表中全量数据;select t.*, rowid from test_tbl_b t;

4、编写语句,查询B中所有在A中不存在的number;

   select t.* from test_tbl_b t where not exists (select 1 from test_tbl_a b where t.num = b.num)

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
apu510064
推荐于2017-09-25 · TA获得超过964个赞
知道小有建树答主
回答量:1634
采纳率:55%
帮助的人:925万
展开全部
select * from B where number not in (select number from A)

select B.* from B left join A on A.numer=B.number
where A.number is null
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
呵呵呵呵HHTT
2011-08-10 · TA获得超过382个赞
知道小有建树答主
回答量:371
采纳率:0%
帮助的人:269万
展开全部
select number from b where not number in (select number from a)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式