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
  • 相关阅读:
    (14)模板的导入和继承
    (13)自定意义标签和过滤器 (templatetags)
    (12)模板语言-with
    (11)模板语言-if判断
    (0)diango、ORM的语法
    python修炼12 -----协程
    python 修炼11 ----------线程进程
    线程 进程 定义
    Python基础之面向对象进阶
    Python ---------copy
  • 原文地址:https://www.cnblogs.com/jiqianqian/p/6609875.html
Copyright © 2011-2022 走看看