zoukankan      html  css  js  c++  java
  • MySQL_连表查询

    连表查询

      连表查询通常分为内连接和外连接。内连接就是使用INNER JOIN进行连表查询;而外连接又分为三种连接方式,分别是左连接(LEFT JOIN)、右连接(RIGHT JOIN)、全连接(FULL JOIN)。下来我们一起来看一下这几种连接方式的区别及基础用法。

    内连接

    INNER JOIN

      INNER JOIN将只会返回相匹配的元素项,即不会返回结果为NULL的数据项。如下图所示:

       INNER JOIN查询的两张表(A、B)的共有的部分,查询结果为null的记录不会出现。

    外连接

      关键字OUTER是可选择的,取决于具体语言,在实现上它们都是遵循标准的

    LEFT JOIN

      关键字从左表(A)返回所有的行,即使右表(B)中没有匹配。如果右表中没有匹配,则结果为NULL。

      

      简单来说就是不管右表(B)有没有匹配到,都会完全输出左表(A)的所有记录,只是当右表的内容没有匹配到时,则将右表对应的字段的内容设置为NULL。

      当然,对查询的SQL语句稍加改动就可以实现只查询A表中存在的记录。比如说添加一个右表的key为NULL的筛选条件。

    RIGHT JOIN

      关键字从右表(B)返回所有的行,即使左表(A)中没有匹配。如果左表(A)中没有匹配,则结果为 NULL。

       如左连接类似,不管左表(A)有没有匹配到结果,都完全显示右表(B)的所有记录,将左表(A)没有匹配到的字段值设为NULL。

       当然,也可以进行简单的筛选得到只有右表(B)存在的记录,设置左表中的key是NULL。

    FULL JOIN

      关键字只要左表(A)和右表(B)其中一个表中存在匹配,则返回行。FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。

      简单来说就是只要两张表(A、B)中任意一张表中存在匹配,则返回记录,当然也可以简单的筛选得到两表中单独存在的记录。比例a.key is null or b.key is null。

  • 相关阅读:
    原型模式
    Object.defineProperties()和Object.defineProperty()方法
    访问器属性:setter()函数和getter()函数
    2019.7.11刷题统计
    2019.7.10刷题统计
    2019.7.9刷题统计
    2019.7.8刷题统计
    2019.7.7刷题统计
    2019.7.6刷题统计
    2019.7.5刷题统计
  • 原文地址:https://www.cnblogs.com/ZN-225/p/10897535.html
Copyright © 2011-2022 走看看