mysql(十五)

目录

子查询

1.准备工作

2--创建表格

3--插入数据

2.where 子查询单列单个数据

格式

查询

3.where 子查询单列多个数据(in)

格式

查询

使用子查询

4.from 多行多数据

格式

查询


子查询

将select的查询的返回结果 当成另外一个selet语句的内容去使用。

子查询放在()里面

注意:把select当成一个函数,一个可以返回结果的函数。只是我们可以给他传递不同参数,获取不同的结果。

1.准备工作

2--创建表格
-- 创建表格CREATE table class (class_id INT PRIMARY KEY AUTO_INCREMENT,class_name VARCHAR(20)
);
create table student (id INT PRIMARY KEY AUTO_INCREMENT;student_name VARCHAR(30),student_sex char(1),student_info VARCHAR(500),student_class_id int,-- 添加主键约束CONSTRAINT student_class_fk FOREIGN KEY(student_class_id) REFERENCES class(class_id)
);

3--插入数据
-- 插入数据
insert into class VALUES
(null, '一班'),
(null, '二班'),
(null, '三班')
;INSERT into student VALUES
(null, '偷走晚霞的人', '男', '一个学生', 1),
(null, '惜.己', '男', '一个学生', 2),
(null, '小玖', '女', '一个学生', 1),
(null, '张三', '男', '一个学生', 3),
(null, '莉莉', '男', '一个学生', 1),
(null, '雪夜', '男', '一个学生', 2),
(null, '小明', '女', '一个学生', 1),
(null, '小新', '男', '一个学生', 3)
;

2.where 子查询单列单个数据

前提返回的数据是 单列单个

格式

这里不一定是等号,还可以是其他的逻辑运算符号

select * from 表名2 where  表名2.需要对比的字段  = (select 字段 from 表名2 where 条件); 

查询

假设我们不知道一班的id ,但是又想查询一班的学生信息.先通过class_name 查询 一班的id

# 通过名字查询 一班的id =1
select class_id from class where class_name = '一班';

最后通过 id去获取 一班的信息

# 通过名字查询 一班的id =1
select class_id from class where class_name = '一班';

这里可以使用内查询==》可以看到查询结果是一样的

只是替换了 第二条sql语句中 为 1 的地方。去掉第一sql中的;

-- 整合两个sqlSELECT * from student 
WHERE 
student_class_id  = (select class_id from class where class_name = '一班') ;

3.where 子查询单列多个数据(in)

格式

select * from 表名2 where  表名2.需要对比的字段  in (select 字段 from 表名2 where 条件); 

查询

假设我们不知道一班,三班的id ,但是又想查询一班,三班的学生信息.先通过class_name 查询 一班的id和三班的id

-- 查询一班三班的信息 
select  class.class_id  FROM class where class_name in ('一班', '三班');
-- 获取到id 为1 , 3

通过id去查询

-- 使用id 去查询二班三班的学生
SELECT * from student where student_class_id in (1,3)

使用子查询
SELECT * from student where student_class_id in(select  class.class_id  FROM class where class_name in ('一班', '三班'));

可以看到只是替换了 1,3的部分。

感觉跟套娃差不多,只是使用一个select的语句的查询结果供另外一个select使用。

4.from 多行多数据

这个需要注意起别名

格式
# 查询学生表信息
SELECT * from (select * From student ) s where s.student_sex = '女';

查询

查询一班的女生子查询版

注:这个是使用当前表的查询的结果再次进行查询。(这个个人感觉不到意义)

# 查询学生表信息
SELECT * from (select * From student ) s where s.student_sex = '女';

查询一班二班男生的信息以及班级的信息

-- 查询 一班,二班,三班 男生的信息select * from class   LEFT JOIN  (SELECT * from student where student_sex = '男') bs on class.class_id =  bs.student_class_id;

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

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

相关文章

【HarmonyOS 5】鸿蒙Taro跨端框架

‌Taro跨端框架‌ 支持React语法开发鸿蒙应用,架构分为三层: ArkVM层运行业务代码和React核心TaroElement树处理节点创建和属性绑定TaroRenderNode虚拟节点树与上屏节点一一对应 import { Component } from tarojs/taro export default class MyCompon…

华为OD机试真题——会议接待 /代表团坐车(2025A卷:200分)Java/python/JavaScript/C++/C语言/GO六种最佳实现

2025 A卷 200分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 本文收录于专栏:《2025华为OD真题目录+全流程解析/备考攻略/经验分享》 华为OD机试真题《会议…

C语言---动态内存管理、柔性数组

一、malloc和free 1、变长数组 变长数组是指数组的大小可以通过变量来指定。 在c99以及之后的标准中&#xff1a; #include<stdio.h> int main() { int n0; scanf("%d",&n); } 2、malloc和free 这个函数向内存申请一块连续可用的空间&#xff0c;并返…

WEBSTORM前端 —— 第3章:移动 Web —— 第4节:移动适配-VM

目录 一、适配方案 二、VM布局 ​编辑 三、vh布局 四、案例—酷我音乐 一、适配方案 二、VM布局 三、vh布局 四、案例—酷我音乐

Dynamics 365 Business Central AI Sales Order Agent Copilot

#AI Copilot# #D365 BC 26 Wave# 最近很多客户都陆续升级到 Dynamics 365 Business Central 26 wave, Microsoft 提供一个基于Copilot 的Sales Order Agent&#xff0c;此文将此功能做个介绍. Explorer: 可以看到26版本上面增加了这样一个新图标。 Configuration: 配置过程…

【harbor】--配置https

使用自建的 CA 证书来自签署和启用 HTTPS 通信。 &#xff08;1&#xff09;生成 CA认证 使用 OpenSSL 生成一个 2048位的私钥这是 自建 CA&#xff08;证书颁发机构&#xff09; 的私钥&#xff0c;后续会用它来签发证书。 # 1创建CA认证 cd 到harbor [rootlocalhost harbo…

Selenium基础操作方法详解

Selenium基础操作方法详解&#xff1a;从零开始编写自动化脚本&#xff08;附完整代码&#xff09; 引言 Selenium是自动化测试和网页操作的利器&#xff0c;但对于新手来说&#xff0c;掌握基础操作是成功的第一步。本文将手把手教你使用Selenium完成浏览器初始化、元素定位、…

python同步mysql数据

python写了一个简单的mysql数据同步脚本,只作为学习练习,大佬勿喷 # -*- coding: utf-8 -*- """ Time:2025/5/29 14:38 Auth:HEhandsome """ import pymysql from pymysql import Connectclass Mysql:def __init__(self):#源数据库self.sou_hos…

手撕Java+硅基流动实现MCP服务器教程

手撕Java硅基流动实现MCP服务器教程 一、MCP协议核心概念 MCP是什么 MCP 是 Anthropic (Claude) 主导发布的一个开放的、通用的、有共识的协议标准。 ● MCP 是一个标准协议&#xff0c;就像给 AI 大模型装了一个 “万能接口”&#xff0c;让 AI 模型能够与不同的数据源和工…

.net consul服务注册与发现

.NET中Consul服务注册与发现的技术实践 在微服务架构中&#xff0c;服务的注册与发现是至关重要的环节&#xff0c;它能帮助各个服务之间实现高效的通信和协作。Consul作为一款功能强大的工具&#xff0c;为我们提供了优秀的服务注册与发现解决方案。今天&#xff0c;我们就来…

大数据量下的数据修复与回写Spark on Hive 的大数据量主键冲突排查:COUNT(DISTINCT) 的陷阱

背景与问题概述 这一周&#xff08;2025-05-26-2026-05-30&#xff09;我在搞数据拟合修复优化的任务&#xff0c;有大量的数据需要进行数据处理及回写&#xff0c;大概一个表一天一分区有五六千万数据&#xff0c;大约一百多列的字段。 具体是这样的我先取档案&#x…

基于 AUTOSAR 的域控产品软件开发:从 CP 到 AP 的跨越

基于 AUTOSAR 的域控产品软件开发&#xff1a;从 CP 到 AP 的跨越 一、AUTOSAR AP 架构解析&#xff1a;面向智能汽车的自适应框架 &#xff08;一&#xff09;引言 随着汽车智能化向 L3 演进&#xff0c;传统 AUTOSAR CP&#xff08;经典平台&#xff09;在实时性、动态性和…

Nacos 配置管理案例:nacos-spring-cloud-config-example详解

一、结构说明&#xff1a;基于Spring Cloud Alibaba的微服务示例 nacos-spring-cloud-config-example : 服务提供者 二、技术栈&#xff1a;Spring BootSpring CloudSpring Cloud Alibaba Nacos Actuator&#xff08;可选&#xff1a;监控&#xff09; 三、使用环境 安装…

BUUCTF[ACTF2020 新生赛]Include 1题解

BUUCTF[ACTF2020 新生赛]Include 1题解 题目分析&#xff1a;知识准备&#xff1a;php://filter 过滤器参数说明常用过滤器功能对照表 开始解题&#xff1a;原理解析构造payload 总结 题目分析&#xff1a; 生成靶机&#xff0c;打开网址&#xff0c;查看源码&#xff0c;抓包…

vscode + cmake + ninja+ gcc 搭建MCU开发环境

vscode cmake ninja gcc 搭建MCU开发环境 文章目录 vscode cmake ninja gcc 搭建MCU开发环境1. 前言2. 工具安装及介绍2.1 gcc2.1.1 gcc 介绍2.1.2 gcc 下载及安装 2.2 ninja2.2.1 ninja 介绍2.2 ninja 安装 2.3 cmake2.3.1 cmake 介绍2.3.2 cmake 安装 2.4 VScode 3. 上手…

九(1). 引用作为函数参数的使用

引用作为参数使用 在 C 中&#xff0c;引用作为函数参数是一种高效且灵活的参数传递方式&#xff0c;它避免了拷贝开销&#xff0c;同时允许函数直接操作原始数据。 以下是关于引用作为参数的详细使用指南和最佳实践&#xff1a; 1. 引用作为参数的基本用法 (1) 普通引用&…

Linux多路TTS混音播放:让多个语音同时清晰可听

Linux多路TTS混音播放:让多个语音同时清晰可听 为什么需要多路混音播放?技术原理概述第一步:配置ALSA dmix混音插件为什么需要dmix?具体配置步骤第二步:生成TTS语音文件为什么需要格式转换?Python生成脚本第三步:实现多路同时播放播放器设计原理Python实现代码多路同时播…

Spring AI 1.0 GA 深度解析:构建企业级AI应用的全栈实践指南

目录 Spring AI 1.0 核心架构解析统一接口与多模型支持检索增强生成(RAG)全流程实战对话记忆与工具调用进阶模型评估与可观测性体系企业级应用案例与最佳实践未来演进与技术展望1. Spring AI 1.0 核心架构解析 1.1 技术架构演进 #mermaid-svg-ymTZMAaxOwd4OAMu {font-family…

Docker 安装 Redis 容器

系列文章目录 文章目录 系列文章目录前言1 获取redis镜像2 创建和部署redis容器3 查看redis是否启动成功4 使用Redis客户端验证连接总结 前言 搭建环境&#xff1a; ubuntu22.04.05 docker redis: 7.0.10 测试环境&#xff1a; windows: win11 Redis测试客户端&#xff1a;Ti…

学习vue3阶段性复习(插槽,Pinia,生命周期)

目录 插槽(匿名插槽&#xff0c;具名插槽) 插槽概述 匿名插槽 具名插槽 Pinia(统一管理&#xff0c;共享数据&#xff09; pinia概述 安装和使用Pinia 1 使用命令下载Pinia 2 再main.js中导入&#xff0c;注册到vue框架中 3使用pinia 持久化存储插件 1 第一步&…