• 数据库中的内连接和外连接


    • 内连接

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

    • 外连接

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

    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
  • 相关阅读:
    mysql大数据的分表
    php settype()和gettype()
    php的类型转换
    php 时间戳和时间的转换
    mysql的数据类型
    thinkphp vender
    (function(){})();和(function(){}())每个括号的用途和区别
    数字的空洞 水 南邮NOJ 1071
    111... 南邮NOJ 1079
    阿里在线笔试题 折半方法求最接近sum值
  • 原文地址:https://www.cnblogs.com/jiqianqian/p/6609875.html
Copyright © 2020-2023  润新知