zoukankan      html  css  js  c++  java
  • oracleI基础入门(9)table子查询 Crazy

    子查询
    我们可以在一个 SQL 语句中放入另一个 SQL 语句。当我们在 WHERE 子句或 HAVING
    子句中插入另一个 SQL 语句时,我们就有一个子查询 (subquery) 的架构。 子查询的作用
    是什么呢?第一,它可以被用来连接表格。另外,有的时候子查询是唯一能够连接两个表格
    的方式。
    子查询的语法如下:
    SELECT "栏位1" FROM "表格" WHERE "栏位2" in (SELECT "栏位1" FROM "表格" WHERE [条件])
    例如 "LIKE"。绿色的部分代表外查询,红色的部分代表内查询。
    我们就用刚刚在阐述 SQL 连接时用过的例子:
    Store_Information 表格
    store_name           Sales                    Date
    Los Angeles           $1500                    Jan-05-1999
    San Diego             $250                      Jan-07-1999
    Los Angeles           $300                      Jan-08-1999
    Boston                  $700                       Jan-08-1999
    Geography 表格
    region_name                   store_name
    East                                 Boston
    East                                 New York
    West                                Los Angeles
    West                               San Diego
    我们要运用 subquery 来找出所有在西部的店的营业额。我们可以用下面的 SQL 来达到我
    们的目的:
    SELECT SUM(Sales) FROM Store_Information
    WHERE Store_name IN
    (SELECT store_name FROM Geography
    WHERE region_name = 'West')
    结果:
    SUM(Sales)
    2050
    在这个例子中,我们并没有直接将两个表格连接起来,然后由此直接算出每一间西区店面的
    营业额。我们做的是先找出哪些店是在西区的,然后再算出这些店的营业额总共是多少。
    在以上的例子,内部查询本身与外部查询没有关系。这一类的子查询称为『简单子查询』
    (Simple Subquery)。如果内部查询是要利用到外部查询提到的表格中的栏位,那这个字查询
    就被称为『相关子查询』 (Correlated Subquery)。以下是一个相关子查询的例子:
    SELECT SUM(a1.Sales) FROM Store_Information a1
    WHERE a1.Store_name IN
    (SELECT store_name FROM Geography a2
    WHERE a2.store_name = a1.store_name)

  • 相关阅读:
    2022年第一天
    RestTemplate、 Ribbon、 OpenFeign 关系以及OpenFeign使用连接池
    linux下面编写简单的c++程序
    Rocket简介以及单机版安装
    事务源码(二)
    javaagent技术&Attach技术
    gateway网关原理
    Maven自定义插件以及使用
    AotucCrawler 快速爬取图片
    Monkey工具之fastbotiOS实践
  • 原文地址:https://www.cnblogs.com/flyscan/p/2545943.html
Copyright © 2011-2022 走看看