zoukankan      html  css  js  c++  java
  • 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子句中表的顺序转换为右外连接,因此,两种类型的外部连接可以互换使用,用哪一种纯粹是看谁更方便

  • 相关阅读:
    线性表(List)
    LUA ipairs遍历的问题
    C#预编译的问题
    Resources与StreamingAssets文件夹的区别
    LUA表与函数的深入理解
    LUA 删除元素的问题
    SVN版本回退
    C# MemoryStream先写后读的奇怪现象
    LUA表 pairs, ipairs输出顺序问题
    LUA table.sort的问题,数组与表的区别
  • 原文地址:https://www.cnblogs.com/hereisdavid/p/13497606.html
Copyright © 2011-2022 走看看