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

  • 相关阅读:
    性能优化方法
    awk命令
    jvm 性能调优工具之 jmap
    linux下tomcat 8的安装以及tomcat启动慢问题
    解析Java中的String、StringBuilder、StringBuffer类(一)
    JDBC详解系列(四)之建立Stament和执行SQL语句
    JDBC详解系列(三)之建立连接(DriverManager.getConnection)
    Paho -物联网 MQTT C Cient的实现和详解
    Paho
    Subscription wildcards(MQTT)
  • 原文地址:https://www.cnblogs.com/hereisdavid/p/13497606.html
Copyright © 2011-2022 走看看