zoukankan      html  css  js  c++  java
  • MySQL子查询

    到现在为止,我们已经表明,以SELECT声明是一个简单的查询。该单个语句从单个数据库表中检索数据。SQL还同意建立一个子查询。即嵌套在其他查询的查询。

    下列实施例给出嵌套查询。


    一种表示订单信息存储,包含订单号,客户ID。订购日期。例如以下所看到的:



    一张表示存储订单物品信息,例如以下:



    另一张表存储的是客户的信息。例如以下:



    假如如今的需求是要找出订购物品TNT2的全部客户。我们发现通过第二张订购物品表能够获取到订单编号,根据订单编号,能够再第一张订单信息表中获取到对应的客户id。通过客户id即能够在第三张表中查询到客户信息了:

    因此有 TNT2 ----> order_num ----> cust_id-----> cust_name。根据之前的SELECT语句能够分条来查询:



    如今能够把第一个查询变为第二个查询的子查询来做:



    同理我们能够把三个查询语句嵌套到一条SQL语句中,嵌套的SQL语句由内向外计算。即最里面的SELECT语句计算出的结果给外一层的SELECT语句来用:



    另外还能够将计算字段作为子查询, 如,我们须要计算出custem表中以个客户须要支付多少钱?先用一个SELECT找出该客户有哪些订单,再将这些订单的价钱加在一起:

    先看cust_id = 10001的订单 20005,20009相加的情况:



    SUM()函数是进行列相加,正好能够把total当成一列来使用,进行求和, IN(20005,20009)转换为SELECT语句就比較简单了:



    以下语句是计算每个客户所须要支付的总金额,是对以上SQL语句的进一步改进,一次求出全部的客户的应付金额:


    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    git基本操作及设置
    5-13 多页面打包配置
    笔记待整理
    单例模式在多线程下的多种实现模式
    面试题小练习1106
    求两个字符串的最大共有子串
    单例模式
    静态初始化一个二维数组并将二维数组排序并输出
    java中数组的基本知识
    关于break语句如何结束多重循环的嵌套
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4667052.html
Copyright © 2011-2022 走看看