• MySQL 外部联结 内连接、左右外连接辨析


    内连接

    在进行跨表内连接查询数据时,查询结果只返回符合查询条件的数据;
    跨表内连接查询的结果和使用where的多表查询结果相同,其实就是普通的查询,没啥好说的

    -- 语法:
      SELECT 别名1.字段名1,别名2.字段名2
      FROM 库名.表名1 [AS] 别名1
      INNER JOIN 库名.表名2 [AS] 别名2
      ON 别名1.字段名3=别名2.字段名3;

    外连接

    多个联结将一个表中的行和另一个表中的行相关联。但有时要包含没有关联行的那些行,例如:

    • 对每个客户下了多少订单进行计数,包括没有订单的客户;
    • 列表所有产品的订单数量,包括没有订单的产品;
    • 计算平均销售量,包括没有订单的客户;

    这类情况联结包含了那些在相关表中没有关联行的行,这种类型的联结就叫外部联结

    对于这个简单的内部联结:检索所有客户及其订单

    1 SELECT customers.cus_id, orders.order_num
    2 FROM customers
    3 INNER JOIN orders
    4 ON customers.cus_id=orders.cus_id

    若用外部联结,即可为了检索所有客户,包括那些没有订单的客户

    SELECT customers.cus_id, orders.order_num
    FROM customers
    LEFT OUTER JOIN orders
    ON customers.cus_id=orders.cus_id

    左连接和右连接

    它们之间唯一的差别就是所关联的表的顺序不同。实际上,左连接可以通过FROM或WHERE子句中表的顺序转换为右外连接,因此,两种类型的外部连接可以互换使用,用哪一种纯粹是看谁更方便

  • 相关阅读:
    奇迹银桥「1」
    20190729-“退役”专场
    20190727-只是睡着了
    $mathcal{Miemeng}$的病态码风计划
    20190725-Silly
    作业-[luogu4396][AHOI2013]-莫队
    数学网学笔记
    20190722-Moni和Boly的故事
    数学学习笔记
    20190719-FirstZero
  • 原文地址:https://www.cnblogs.com/hereisdavid/p/13497606.html
Copyright © 2020-2023  润新知