zoukankan      html  css  js  c++  java
  • SQL左、右、内、全连接

    1.前言

    本文将实现两表的多种连接方式,现存在两个表如下所示:

    2.内连接

    典型的联接运算,包括在查询语句中使用像 =  或 <> 之类的比较运算符。内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。

    例如,检索表 a 和 b 表中 id 与 pid 相同的项,查询语句如下所示:

    select a.*,b.* from a inner join b on a.id=b.pid

    查询结果如下所示:

    3.外连接

    外连接可以是左向外联接、右向外联接或完整外部联接。在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:

    3.1 左外连接(左连接)

    左向外联接的结果集包括  LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。

    例如将之前的表 a 的 id 与表 b 的 pid 进行左连接,查询语句如下所示:

    select a.*,b.* from a left join b on a.id=b.pid

    查询结果如下所示:

    3.2 右外连接(右连接)

    右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

    例如将之前的表 a 的 id 与表 b 的 pid 进行右连接,查询语句如下所示:

    select a.*,b.* from a right join b on a.id=b.pid

    查询结果如下所示:

    3.3 完全连接(全连接)

    select a*,b.* from a full join b on a.id=b.pid

    查询结果如下所示:

    其结果与以下查询语句等价:

    select  a.*,b.* from a left outer join b on a.id=b.pid
    union
    select a.*,b.* from a right outer join b on a.id=b.pid
  • 相关阅读:
    python float保留两位小数
    linux使用ftp服务
    selenium是如何启动浏览器的
    小白学PYTHON时最容易犯的6个错误,看看你遇到过几个
    为什么你需要测试某个字段为空的场景
    为什么要做接口测试
    从爱奇艺招聘信息看当前测试开发的技能要求
    测试同学难道要写一辈子的hello world?
    收藏清单: python测试框架最全资源汇总
    如何写出测不出bug的测试用例
  • 原文地址:https://www.cnblogs.com/jizhiqiliao/p/9825742.html
Copyright © 2011-2022 走看看