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

  • 内连接

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

  • 外连接

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

  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

posted on 2017-03-24 09:54  一个不会coding的girl  阅读(216)  评论(0编辑  收藏  举报

导航