• 简谈


    一. 内连接(inner join)

    内连接包括相等联接和自然联接,通常使用像 =  或 <> 之类的比较运算符。

    简单地讲,内连接就是以两个表中相关联的列作为筛选条件,选出符合查询条件的所有数据行。

    二. 外连接(Outer join) 

    外连接包括

    1)LEFT  JOIN或LEFT OUTER JOIN   简单地说,就是以左边表的数据行数为两个组合表的总行数,如果左边表的某一行数值没有映射到右边表的某一行,那么照样输出左边表的那一行数值,而对应右表数值相应位置的值为空值。(A: 4X3, B: 3X3, AB = 4X6)

    2)RIGHT  JOIN 或 RIGHT  OUTER  JOIN  与left join相反,就是以右边表的数据行数为两个组合表的总行数,如果右边表的某一行数值没有映射到左边表的某一行,那么照样输出右边表的那一行数值,而对应左表数值相应位置的值为空值。(A: 4X3, B: 3X3, AB = 3X6)

    3)FULL  JOIN 或 FULL OUTER JOIN 完整外部联接即返回左表和右表中的所有行。(A: 4X3, B: 3X3, AB = 7X6)

    三. 交叉连接(Cross join)
    交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积。  (A: 4X3, B: 3X3, AB = 12X6)  

    例子:   
    --------------------------------------------------------------------------------------
      A表     id   name class address        B表     id   job   parent_id   
                  1   张3      A1       G                         1     23     1   
                  2   李四    A2        J                          2     34     2   
                  3   王武    A3        S                         3     34     5

                  4   小红    A4       H                         

     

    A.id 同 B.parent_id   存在关系   
    ---------------------------------------------------------------------------------------

    A: 4X3, B: 3X3, AB = 4X6

    select * from A inner join B on A.id = B.parent id;

    AB table :

       id   name class address id   job   parent_id   
       1   张3      A1       G               1     23     1   
       2   李四    A2        J                2     34     2   
       3   王武    A3        S               3     34     5 

       4   小红    A4       H                null

  • 相关阅读:
    阅读代码
    openSips
    rc.local 问题
    MyBatis框架使用(一)
    【数据结构杂谈】
    【AGC052A】
    【杜教筛学习笔记】
    CF618F Double Knapsack
    [NOI2016] 循环之美
    【BZOJ 4668 冷战】
  • 原文地址:https://www.cnblogs.com/Xbingbing/p/8686921.html
Copyright © 2020-2023  润新知