zoukankan      html  css  js  c++  java
  • [转]Oracle数据关联查询

    来源:赛迪网    作者:Alizze

    关联在Oracle数据查询时会经常用到,灵活的应用关联可以解决很多实际应用的问题.下面给出一些示例:

    建表

    create table ab

    (

    ab_id number(5),

    ab_name varchar2(30)

    );



    create table bb

    (

    bb_id number(5),

    bb_name varchar2(30)

    );

    插入数据

    insert into ab(ab_id,ab_name) values(1,'1ab_name');

    insert into ab(ab_id,ab_name) values(2,'2ab_name');

    insert into ab(ab_id,ab_name) values(3,'3ab_name');



    insert into bb(bb_id,bb_name) values(1,'1bb_name');

    insert into bb(bb_id,bb_name) values(2,'2bb_name');

    insert into bb(bb_id,bb_name) values(4,'4bb_name');

    insert into bb(bb_id,bb_name) values(6,'6bb_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

    1 1ab_name 1bb_name

    2 2ab_name 2bb_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

    1 1ab_name 1bb_name

    2 2ab_name 2bb_name

    3 3ab_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

    1 1ab_name 1bb_name

    2 2ab_name 2bb_name

    4bb_name

    6bb_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

    1 1ab_name 1bb_name

    2 2ab_name 2bb_name

    3 3ab_name

    6bb_name

    4bb_name

    返回两个表所有的结果,如果在关联条件上没有对应的记录,那么将在该列上显示为空。

    全关联返回的结果集范围最小。完全外关联返回的结果范围最大,是否左关联和右关联并集;全关联是左关联和右关联的交集。

  • 相关阅读:
    左偏树
    论在Windows下远程连接Ubuntu
    ZOJ 3711 Give Me Your Hand
    SGU 495. Kids and Prizes
    POJ 2151 Check the difficulty of problems
    CodeForces 148D. Bag of mice
    HDU 3631 Shortest Path
    HDU 1869 六度分离
    HDU 2544 最短路
    HDU 3584 Cube
  • 原文地址:https://www.cnblogs.com/lauer0246/p/1350981.html
Copyright © 2011-2022 走看看