Oracle数据查询时经常用到的关联
关联在Oracle数据查询时会经常用到 灵活的应用关联可以解决很多实际应用的问题 下面给出一些示例:
建表
create table ab ( ab_id number( ) ab_name varchar ( ) ); create table bb ( bb_id number( ) bb_name varchar ( ) );
插入数据
insert into ab(ab_id ab_name) values( ab_name ); insert into ab(ab_id ab_name) values( ab_name ); insert into ab(ab_id ab_name) values( ab_name ); insert into bb(bb_id bb_name) values( bb_name ); insert into bb(bb_id bb_name) values( bb_name ); insert into bb(bb_id bb_name) values( bb_name ); insert into bb(bb_id bb_name) values( bb_name );
等值关联(全关联)
select a ab_id a ab_name b bb_name from ab a bb b where a ab_id=b bb_id;
返回结果
AB_ID AB_NAME BB_NAME ab_name bb_name ab_name bb_name
返回两个表中所有能匹配的记录 不能匹配的记录不返回
左关联
select ab_id ab_name bb_name from ab a left join bb b on a ab_id=b bb_id; 同 select ab_id ab_name bb_name from ab a bb b where a ab_id=b bb_id(+);
返回结果
AB_ID AB_NAME BB_NAME ab_name bb_name ab_name bb_name ab_name
返回左边表的左右记录 在右边表中没有对应记录的右表字段显示为空
右关联
select ab_id ab_name bb_name from ab a right join bb b on a ab_id=b bb_id; 同 select ab_id ab_name bb_name from ab a bb b where a ab_id(+)=b bb_id;
返回结果:
AB_ID AB_NAME BB_NAME ab_name bb_name ab_name bb_name bb_name bb_name
返回右边表中所有的记录 在右边表不能匹配的记录行上 左边表对应的字段显示为空
完全外关联
select ab_id ab_name bb_name from ab a full join bb b on a ab_id=b bb_id;
返回结果
AB_ID AB_NAME BB_NAME ab_name bb_name ab_name bb_name ab_name bb_name bb_name
返回两个表所有的结果 如果在关联条件上没有对应的记录 那么将在该列上显示为空
lishixinzhi/Article/program/Oracle/201311/18919