ITPub博客

首页 > 数据库 > Oracle > 左连接和右连接

左连接和右连接

原创 Oracle 作者:bluesshadow 时间:2016-09-20 16:24:24 0 删除 编辑
表t1:
SQL> select * from folore.t1;

        ID NAME
---------- ------------------------------
      1003 ccc
      1004 ddd
      1007 gggg
      1005 eee
      1006 ffff
      1001 aaa
      1002 bbb
      
表t2:
SQL> select * from t2;

        ID NAME
---------- ------------------------------
      1001 aaa
      1002 bbb      

左连接:
以t1表为基础表,t2表为匹配表,结果集显示为基础表所有数据,另外显示匹配表与基础表条件相匹配的结果,其余的显示为空值:

SQL> select a.id,b.id from t1 a left join t2 b on a.id=b.id;

        ID         ID
---------- ----------
      1001       1001
      1002       1002
      1006
      1005
      1007
      1004
      1003
SQL> select * from t1 a left join t2 b on a.id=b.id;

        ID NAME                                   ID NAME
---------- ------------------------------ ---------- ------------------------------
      1001 aaa                                  1001 aaa
      1002 bbb                                  1002 bbb
      1006 ffff
      1005 eee
      1007 gggg
      1004 ddd
      1003 ccc
如果使用(+),(+)所在的一边为匹配表,另一边为基础表,(+)必须使用where条件语句:
SQL> select * from t1 a,t2 b where a.id=b.id(+);

        ID NAME                                   ID NAME
---------- ------------------------------ ---------- ------------------------------
      1001 aaa                                  1001 aaa
      1002 bbb                                  1002 bbb
      1006 ffff
      1005 eee
      1007 gggg
      1004 ddd
      1003 ccc
      
以t2表为基础表,t1表为匹配表:
SQL> select * from t2 a left join t1 b on a.id=b.id;

        ID NAME                                   ID NAME
---------- ------------------------------ ---------- ------------------------------
      1001 aaa                                  1001 aaa
      1002 bbb                                  1002 bbb

      
SQL>select * from t1 a,t2 b where a.id(+)=b.id

        ID NAME                                   ID NAME
---------- ------------------------------ ---------- ------------------------------
      1001 aaa                                  1001 aaa
      1002 bbb                                  1002 bbb
      
右连接,刚好与左连接相反:
以t1为基础表,t2为匹配表:  
SQL> select a.id,b.id from t1 a right join t2 b on a.id=b.id;

        ID         ID
---------- ----------
      1001       1001
      1002       1002  
以t2为基础表,t1为匹配表,结果集显示为基础表所有数据,另外显示匹配表与基础表条件相匹配的结果,其余的显示为空值:      
SQL> select a.id,b.id from t2 a right join t1 b on b.id=a.id;

        ID         ID
---------- ----------
      1001       1001
      1002       1002
                 1006
                 1005
                 1007
                 1004
                 1003      

表关联条件前后顺序不影响结果:
SQL> select a.id,b.id from t1 a right join t2 b on a.id=b.id;

        ID         ID
---------- ----------
      1001       1001
      1002       1002

SQL> select a.id,b.id from t1 a right join t2 b on b.id=a.id;

        ID         ID
---------- ----------
      1001       1001
      1002       1002
      
全连结:
SQL>select * from t1 full join t2 on t1.id=t2.id;

        ID NAME                                   ID NAME
---------- ------------------------------ ---------- ------------------------------
      1003 ccc
      1004 ddd
      1007 gggg
      1005 eee
      1006 ffff
      1001 aaa                                  1001 aaa
      1002 bbb                                  1002 bbb

7 rows selected.

SQL> select * from t2 full join t1 on t1.id=t2.id;

        ID NAME                                   ID NAME
---------- ------------------------------ ---------- ------------------------------
                                                1003 ccc
                                                1004 ddd
                                                1007 gggg
                                                1005 eee
                                                1006 ffff
      1001 aaa                                  1001 aaa
      1002 bbb                                  1002 bbb                                  

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24668589/viewspace-2125220/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: RHEL6 NFS配置
下一篇: ORACLE ACFS创建
请登录后发表评论 登录
全部评论

注册时间:2010-09-27

  • 博文量
    34
  • 访问量
    150123