• 3、sql 表的连接


    摘自: https://blog.csdn.net/holly2008/article/details/25704471

    表连接分为:CROSS JOIN、INNERT JOIN、OUTER JOIN、SELF JOIN。

    一、CROSS JOIN 交叉连接

      CROSS JOIN连接用于生成两张表的笛卡尔集。
      1、返回的记录数为两个表的记录数乘积。比如,A表有n条记录,B表有m条记录,则返回n*m条记录。
      2、将A表的所有行分别与B表的所有行进行连接。

    二、INNER JOIN 内连接

      内连接就是关联的两张或多张表中,根据关联条件,显示所有匹配的记录,匹配不上的,不显示。

      1、--也可以省略inner关键字,直接写join

      2、--如果两张表的关联字段名相同,也可以使用USING子句。

      

    三、OUTER JOIN 外连接
      外连接,又分为:(-如果两张表的关联字段名相同,也可以使用USING子句)
            1.LEFT OUTER JOIN/LEFT JOIN(左外连接)
            2.RIGHT OUTER JOIN/RIGHT JOIN(右外连接)
            3.FULL OUTER JOIN/FULL JOIN(全外连接)

     1.LEFT OUTER JOIN/LEFT JOIN(左外连接)

            左外连接就是关联的两张或多张表中,根据关联条件,显示匹配的记录,左表中有的记录,但是右表中没有匹配上的,以空(null)显示。
            LEFT OUTER JOIN也可以简写成LEFT JOIN,效果是一样的。

    2.RIGHT OUTER JOIN/RIGHT JOIN(右外连接)
            右外连接就是关联的两张或多张表中,根据关联条件,显示匹配的记录。右表中有的记录,但是左表中没有匹配上的,以空(null)显示。
            RIGHT OUTER JOIN也可以简写成RIGHT JOIN,效果是一样的。
     

    3.FULL OUTER JOIN/FULL JOIN(全外连接)
            全外连接就是关联的两张或多张表中,根据关联条件,显示所有匹配和不匹配的记录。(m + n)
            左表中有的记录,但是右表中没有匹配上的,以空(null)显示。右表中有的记录,但是左表中没有匹配上的,也以空(null)显示。
            FULL OUTER JOIN也可以简写成FULL JOIN,效果是一样的。
     

    四、SELF JOIN 自连接 

       自连接,就是把一张表取两个别名,当做两张表来使用,自己和自己关联。(一般不用)

      

      可以修改为

      

    五、Natural JOIN 自然连接

      对两张表中名称、数据类型都相同的字段进行等值连接,并返回符合条件的结果

      两张表的相同的字段不能超过 11 个。

      eg:  select select_list from table1 natural join tabl2

    六、总结
    表连接分为:
      1.CROSS JOIN:显示迪卡尔积。
      2.INNERT JOIN:显示所有匹配的项。
      3.OUTER JOIN
         外连接又分为:
           1) LEFT OUTER JOIN/LEFT JOIN:显示左表的所有项,右表没有匹配的项,则以null显示。
           2) RIGHT OUTER JOIN/RIGHT JOIN:显示右表的所有项,左表没有匹配的项,则以null显示。
           3) FULL OUTER JOIN/FULL JOIN:显示所有匹配和不匹配的项,左右两张表没有匹配的,都以null显示。
      4.SELF JOIN:把一张表取两个别名,当做两张表来使用,自己和自己关联。

            5、NATURAL JOIN: 把两张表根据同名称、同数据类型的字段进行连接起来,返回匹配的项。

  • 相关阅读:
    DataTable.Compute方法使用实例
    asp.net GridView实现多表头类 多行表头实现方法
    VS2010保存时控件验证(用onclientclick事件) js脚本
    asp.net网页中添加年月日时分秒星期。
    Hbase写入hdfs源码分析
    Hbase的WAL在RegionServer基本调用过程
    Redis设计思路学习与总结
    腾讯云TDSQL审计原理揭秘
    Hbase WAL线程模型源码分析
    在腾讯云上创建您的SQL Cluster(4)
  • 原文地址:https://www.cnblogs.com/skillking/p/9802311.html
Copyright © 2020-2023  润新知