zoukankan      html  css  js  c++  java
  • 《MySQL必知必会》第十六章:创建高级联结

    @author: Tobin
    @date: 2019/10/31 19:27:19

    介绍如何实现表别名(被联结的表也可以重新命名,方便使用),以及聚集函数。

    # 自联结,也可以用子查询来实现
    # 这里首先p2已经进行了行的筛选
    SELECT p1.prod_id, p1.prod_name
    FROM products AS p1, products AS p2
    WHERE p1.vend_id = p2.vend_id
    AND p2.prod_id ='DTNTR';
    
    # 自然联结
    # 只返回唯一的列,不会出现重复的列
    # 此处省略,使用通配符,c是表名。
    SELECT c.*,...
    
    # 外部联结,没用出现的行也会被返回
    # 内部联结,是返回共同出现的那些行
    # LEFT JOIN ,LEFT和RIGHT决定了没有出现的行,返回的是左边的表,还是右边的表
    # RIGHT JOIN
    SELECT customers.cust_id, orders.order_num
    FROM customers LEFT OUTER JOIN orders
    ON customers.cust_id = orders.cust_id;
    
    # 对联结表使用聚合函数
    SELECT customers.cust_name, 
                   customers.cust_id,
                   COUNT(orders.order_num) AS num_ord
    FROM customers INNER JOIN orders
    ON customers.cust_id = orders.cust_id;
    GROUP BY customers.cust_id;
    
    # 联结注意的问题
    # 保证使用正确的联结条件,并且应该总是提供联结条件,负责返回笛卡儿积
    
  • 相关阅读:
    测试一下你的T-SQL基础知识-count
    测试一下你的T-SQL基础知识-subquery
    Microsoft SQL Server 2012 管理 (2): Auditing
    Webpack
    react
    Webpack 傻瓜式指南(一)
    谈谈react-router学习
    使用Flexible 实现手淘H5 页面的终端适配学习
    Promise 让异步更优
    基于LeanCloud云引擎的Web全栈方案
  • 原文地址:https://www.cnblogs.com/zuotongbin/p/11814163.html
Copyright © 2011-2022 走看看