查询a表的数据,但是a表的id不等于b表的id的值,如果b表存在id为null的值,就会出现查询不到数据的情况;
创建表a:
create table a (
id number(10),name varchar2(20)
);
创建表b:
create table b (id number(10),
name varchar2(20)
);
插入a表数据,其中两条和b不同:
insert into a values(1,'张三');insert into a values(2,'李四');
insert into a values(3,'王五');
insert into a values(4,'赵六');
insert into a values(5,'王二');
insert into a values(6,'王五');
insert into a values(7,'王玖');
插入b表数据,其中一条id为null:
insert into b values(1,'张三');insert into b values(2,'李四');
insert into b values(3,'王五');
insert into b values(4,'赵六');
insert into b values(5,'王二');
insert into b (name) values('王二');
查询a表的数据,但是a表的id不等于b表的id的值;
1.直接查 :
select * from a where id not in(select id from b )
返回的是null,没有数据显示
2.排掉b表id为null 的数据:
select * from a where id not in(select id from b where id is not null)
可以正常查出id等于6和7的数据;