准备数据
--临时表A
create table a_temp(
id number(2),
name number(2)
);
--临时表B
create table b_temp(
id number(2),
name number(2)
);
--向A插入数据
insert into a_temp values (1, 1);
insert into a_temp values (2, 1);
insert into a_temp values (3, 1);
insert into a_temp values (4, 1);
--向B插入数据
insert into b_temp values (1, 1);
insert into b_temp values (2, 1);
insert into b_temp values (null, 1);
问题:如何查出A表中ID
不存在于B表中ID
的数据?
select * from a_temp where id not in (
select id from b_temp
);
正常情况下,查询结果应该显示ID
为3、4的数据,但是如果按照上面的语句查询,你会发现查询的结果为空。
如何查出正确结果?
select * from a_temp where id not in (
select id from b_temp where id is not null
);