zoukankan      html  css  js  c++  java
  • 数据库中的内连接和外连接

    • 内连接

           指连接结果仅仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。

    • 外连接

           指连接结果不仅包含符合连接条件的行,同时也包含自身不符合条件的行。分为左外连接、右外连接和全外连接。

    1. 左外连接:左边表数据行全部保留,右边表保留符合连接条件的行
    2. 右外连接:右边表数据行全部保留,左边表保留符合连接条件的行
    3. 全外连接:左外连接 union 右外连接
    • 举例说明

           存在三个表TestA,TestB,TestC,各有A,B两列

                                         TestA:

    A B
    001 10A
    002 20A

                                         TestB:

    A B
    001 10B
    003 30B

                                         TestC:

    A B
    001 10C
    004 40C

           1. 内连接

              SELECT *

              FROM TestA,TestB

              WHERE TestA.A = TestB.A

                                         result:

    A B A B
    001 10A 001 10B

           2. 外连接

               1) 左外连接 left outer join 或 left join

                   SELECT *

                   FROM TestA

                   LEFT OUTER JOIN TestB

                   ON TestA.A = TestB.A

                                        result:

    A B A B
    001 10A 001 10B
    002 20A    

     

                   三个表做左外连接

                   SELECT *

                   FROM TestA

                   LEFT OUTER JOIN TestB

                   ON TestA.A = TestB.A

                   LEFT OUTER JOIN TestC

                   ON TestA.A = TestC.A

                                          result:

    A B A B A B
    001 10A 001 10B 001 10C
    002 20A        

     

                2) 右外连接 right outer join 或 right join              

                   SELECT *

                   FROM TestA

                   RIGHT OUTER JOIN TestB

                   ON TestA.A = TestB.A                               

                                           result:

    A B A B
    001 10A 001 10B
        003 30B

     

                 3) 全外连接 full outer join 或 full join 

                   SELECT *

                   FROM TestA

                   FULL OUTER JOIN TestB

                   ON TestA.A = TestB.A  

                                          result:

    A B A B
    001 10A 001 10B
    002 20A    
        003 30B
  • 相关阅读:
    Linux常用命令
    ServerSocketChannel和SocketChannel
    Java扫描包
    [BZOJ3874/AHOI2014]宅男计划
    [BZOJ4029/HEOI2015]定价
    [考试]20151012贪心
    [BZOJ4027/HEOI2015]兔子与樱花
    [考试]20151010
    [考试]20151009
    Test of String
  • 原文地址:https://www.cnblogs.com/jiqianqian/p/6609875.html
Copyright © 2011-2022 走看看