oracle中sql语句小练习(使用连接查询)

假设A(m,n,p),B(m,n,p)

--1.A表中有某一项m而B表中没有

使用左连接查询:
select a.* from A a left join B b on a.m=b.m where b.m is null;

左连接查询公共部分以及A表中的全部数据,B表中该列值为null的数据即为A中存在而B中不存在的结果。

--2.A表中没有某一项m而B表中有

可改为使用右连接查询:

select b.* from A a right join B b on a.m=b.m where a.m is null;

与上一条类似,只是这次判断A表中不存在而B表中存在的结果,右连接查询公共部分以及B表中的全部数据。

--3.查询A表与B表中某一项m一致,而有其它项不一致的情况,其它几项只要有一项满足不一致则输出查询结果,sql语句如下:

select a.m,a.n,a.p,b.m,b.n,b.p from A a join B b on a.m=b.m where a.n<>b.n or a.p<>b.p;

使用了join...on...的连接查询,在此语句中判断不相等的语法为<>,在这里也可写为!=,此查询为查询两个表共同的部分。

posted @ 2019-08-16 11:32  Joker明哥  阅读(501)  评论(0编辑  收藏  举报