SQL第11课——使用子查询

news2024/10/1 6:14:49

11.1 子查询

查询(query):

任何SQL语句都是查询,但此术语一般指select语句。

select语句是SQL的查询,迄今为止所有的select语句都是简单查询,即从单个数据库表中检索数据的单条语句。

SQL还允许创建子查询(subquery),即嵌套在其他查询中的查询。

11.2 利用子查询进行过滤

本课使用的数据库表都是关系表。订单存储在两个表中。每个订单包含订单编号,客户ID, 订单日期,在orders表中存储为一行。各订单的物品存储在相关的orderitems表中。orders表不存储顾客信息,只存储顾客ID。顾客的实际信息存储在customers表中。

现在需要列除订购物品RGAN01的所有顾客,实时步骤:

1. 检索包含物品RGAN01的所有订单的编号;——OrderItems表中

2. 检索具有前一步骤列出的订单编号的所有顾客的ID;——Customers表中

3. 检索前一步骤返回的所有顾客ID的顾客信息——Orders表中

每个步骤可以单独作为一个查询来执行,可以把一条select语句返回的结果用于另一条select语句的where子句。也可以使用子查询把3个查询组合成一条语句。

第一步骤:

第二步:

结合这两个查询,把第一个查询变为子查询。

子查询总是从内向外处理。

第三步:检索这些顾客ID的顾客信息。

把where子句转换为子查询,

实际使用时由于性能的限制,不能嵌套太多的子查询。

作为子查询的select 语句只能查询单个列,企图检索多个列将返回错误。

使用子查询并不总是执行这类数据检索的最有效方法,更好的方法,以后论述。

11.3 作为计算字段使用子查询

使用子查询的另一种方法是创建计算字段。

假如需要显示customers表中每个顾客的订单总数。订单与相应的顾客ID存储在orders表中,执行这个操作,要遵循下面的步骤:

1. 从customers表中检索顾客列表;

2. 对于检索出的每个顾客,统计其在orders表中的订单数目。

对顾客1000000001的订单进行计数:

 要对每个顾客执行count(*),应该将它作为一个子查询:

where指定了表名,如果没有具体指定表名,就会返回错误结果,如下:

总是返回orders表中的订单数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2181719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nginx+php+postgresql搭建漏洞靶场

经过我多番查找,最终得出一个结论,dvwa暂时不支持 postgresql 本文给大家提供一个思路,千万不要轻易模仿 更新系统包列表 首先,打开终端并更新你的系统包列表: sudo apt updatesudo apt upgrade -y安装必要的软件包 安装Nginx、PHP、PostgreSQL以及一些必要的PHP扩展:…

抓取网页重定向之前的接口请求

使用谷歌浏览器,按下F12抓取接口的时候,会遇到无法抓取web页面重定向之前的地址的问题,这个时候可以使用以下两种方式进行抓取: 1.断网操作,选择开发者调试工具下面的,网络离线功能进行离线操作 2.使用保留…

Chromium 屏蔽“缺少 Google API 密钥,因此 Chromium 的部分功能将无法使用。”提示 c++

新编译的Chromium工程默认gn参数如下: 可以利用gn args --list out/debug >1.txt 导出默认参数 google_api_key Current value (from the default) "" From //google_apis/BUILD.gn:43 Set these to bake the specified API keys and OAuth client …

NR不同小区带宽的RB数

1. FR1 下表为FR1中不同小区带宽对应的最大RB数量。 SCS (kHz) 5 MHz 10 MHz 15 MHz 20 MHz 25 MHz 30 MHz 40 MHz 50 MHz 60 MHz 70 MHz 80 MHz 90 MHz 100 MHz 15 25 52 79 106 133 160 216 270 N/A N/A N/A N/A N/A 30 11 24 38 51 6…

登录功能开发 P167重点

会话技术: cookie jwt令牌会话技术: jwt生成: Claims:jwt中的第二部分 过滤器: 拦截器: 前端无法识别controller方法,因此存在Dispa什么的

仿真设计|基于51单片机的双机通信控制数码管显示

目录 具体实现功能 设计介绍 51单片机简介 资料内容 仿真实现(protues8.7) 程序(Keil5) 全部内容 资料获取 具体实现功能 (1)双机通信系统分为通讯发送端和通讯接收端。 (2)…

5G上的时敏网络:带有IEEE 802.1Qbv流量的混合5G和TSN系统的实验评估

论文标题:Time-Sensitive Networking over 5G: Experimental Evaluation of a Hybrid 5G and TSN System with IEEE 802.1Qbv Traffic 作者信息:Adnan Aijaz 和 Sajida Gufran,来自英国布里斯托尔的Toshiba Europe Ltd.的Bristol Research a…

Vue 技术进阶 day2 数据监视的原理、其他内置指令、自定义指令、生命周期、组件化、VueComponent构造函数

目录 1.Vue监测数据的原理 1.1 原理 1.1.1 数据劫持 1.1.2 观察者模式(Vue内部的实现) 1.1.3 更新组件 1.1.4 计算属性和侦听器 1.2 后添加属性做响应式(Vue.set / vm.$set) 1.3 对象和数组的响应式 1.4 数据监视案例 2.指令 2.1 内置指令 2.…

threejs三维可视化完全开源案例突破100个了

好激动呀,经过不断努力,三维开源案例,已经突破100个共享 赶快来逛逛吧! 官网:https://threelab.cn/ 源码地址:https://github.com/AivoGenX/threelab-threejs-webgpu-vue-js

OkHttp 详细使用步骤,以及异步请求和同步请求

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。 😊 座右铭:不…

springboot+vue+elementui大文件分片上传

工具类方法: /*** 大文件分片上传* param fileName 文件名* param file 文件* param fileKey 文件key* param shardIndex 当前分片下标* param shardTotal 分片总量*/public static void bigUpload(String fileName,MultipartFile file, String fileKey, L…

【数据结构】MapSet

【概念】 Map和Set是一种专门用于搜索的数据结构,其搜索效率与具体实例化的子类数量有关,本质上是一颗二叉搜索树 搜索的关键数据为关键字“Key”,关键字对应的数据为值“Value”,将其称为“Key-Value键值对” 【关于Map】 Ma…

8 种渗透测试类型

渗透测试是对网络、硬件或软件系统进行有计划的攻击,目的是揭露可能破坏系统完整性并危及有价值数据的安全缺陷。虽然渗透测试的类型不同,但它们都旨在利用漏洞和弱点来测试现有安全措施的有效性。 渗透测试 不同类型的渗透测试取决于人们希望在特定系…

初识Linux · O(1)调度算法

目录 前言: O(1)调度算法 前言: 在初识进程的那一块,我们已经知道了进程并不是一直占用cpu资源的,而是存在时间片的概念,即,每个进程都有一定的时间来执行该进程,时间一到,该进程…

会议平台后端优化方案

会议平台后端优化方案 通过RTC的学习,我了解到了端对端技术,就想着做一个节省服务器资源的会议平台 之前做了这个项目,快手二面被问到卡着不知如何介绍,便有了这篇文章 分析当下机制 相对于传统视频平台(SFU&#xff…

windows 驱动实例分析系列-定时日志的COM驱动

本文章的前置文章为: windows 驱动编写原则 windows COM驱动 案例 windows COM驱动的I/O处理 在前面的设计中,主要是对windows提供的VirtualSerial源代码的讲解,但是那个驱动其实是一个空壳驱动,用于学习的,在I/O处理中,也讲述了serial I/O处理的本质,接下来会将这些…

PGMP-03战略一致性

1.概要 program strategy alignment:战略一致性 2.详细

css的背景background属性

CSS的background属性是一个简写属性,它允许你同时设置元素的多个背景相关的子属性。使用这个属性可以简化代码,使其更加清晰和易于维护。background属性可以设置不同的子属性。 background子属性 定义背景颜色 使用background-color属性 格式&#x…

经典文献阅读之--WiROS(用于机器人的WiFi感知工具箱)

0. 简介 近期的许多研究探索了使用基于WiFi的感知技术来改善SLAM(同时定位与地图构建)、机器人操控或探索。此外,WiFi的广泛可用性使其成为最具优势的射频信号。但WiFi传感器缺乏一个准确、易处理、多功能的工具箱,这限制了它们与…

MicoZone-Maven

一、理论 Maven 是 Apache 软件基金会组织维护的一款专门为 Java 项目提供项目构建和依赖管理支持的工具。 通过Maven管理依赖的优势: 1、通过在pom.xml中指定jar包坐标即可自动从仓库下载依赖 2、如果jar包存在子依赖会自动下载子依赖包 3、如果jar包之间存在冲突…