mysql 联合查询

news2024/11/27 21:57:47

mysql联合查询

联合查询:union,将多次查询(多条select语句)的结果,在字段数相同的情况下,在记录的层次上进行拼接。

基本语法

联合查询由多条select语句构成,每条select语句获取的字段数相同,但与字段类型无关。

基本语法:select 语句1 + union + [union选项] + select 语句2 + …;

union 选项:与select选项一样有两种

all:无论重复与否,保留所有记录;

distinct:表示去重,为默认选项。

执行如下 SQL 语句,进行测试:

— 联合查询,默认去重

select * from class

union distinct

select * from class;

— 联合查询,保留所有记录

select * from class

union all

select * from class;

如上图所示,展示了联合查询的两种形式。特别地,联合查询只要求字段数相同,而跟类型无关。执行如下 SQL 语句,进行测试:

— 联合查询,字段数相同,类型不同

select id, grade, room from class

union distinct

select name, age, id from student;

如上图所示,联合查询只保留了第一张表的字段,而不保留第二张表的字段。

意义

联合查询的意义有两种,分别为:

查询同一张表,按时需要不同,例如查询学生信息,要求男生按年龄升序排序,女生按年龄降序排序;

多表查询,多张表的结构是完全一样的,保持的数据结构也是一样的。

此外,如果数据量非常的大,就要进行分表(垂直分表和水平分表),而分表的依据无外乎数据多不多和常不常用。

排序

首先,让我们看看student表中的数据:

接下来,给出一个需求: 在student表中,让男生按年龄升序排序,让女生按年龄降序排序。根据我们刚刚学到的联合查询,貌似很容易啊!执行如下 SQL 语句,进行测试:

— 在 student 表中,按年龄,男升女降

select * from student where gender = “boy” order by age asc

union

select * from student where gender = “girl” order by age desc;

如上图所示,呃,好吧,貌似出错啦!这是因为要想在联合查询中使用order by,我们必须将select语句用括号括起来。执行如下 SQL 语句,进行测试:

— 在 student 表中,按年龄,男升女降

(select * from student where gender = “boy” order by age asc)

union

(select * from student where gender = “girl” order by age desc);

如上图所示,啊,我们都已经将select语句用括号括起来了,但是男生和女生也没有按我们的目的实现啊!好吧,这是因为要想在联合查询中使order by生效,我们必须将其与limit搭配使用,而limit的限定数,我们设置为一个非常大的数即可。执行如下 SQL 语句,进行测试:

— 在 student 表中,按年龄,男升女降

(select * from student where gender = “boy” order by age asc limit 666)

union

(select * from student where gender = “girl” order by age desc limit 666);

如上图所示,显然,这次咱们的目的实现啦!

温馨提示:符号[]括起来的内容,表示可选项;符号+,则表示连接的意思。

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

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

相关文章

Seata介绍、原理、配置

目录 介绍: 核心组件: 原理: Seata 会有 4 种分布式事务解决方案,分别是 AT 模式、TCC 模式、Saga 模式和 XA 模式 AT模式原理: 一阶段: 二阶段提交: 二阶段回滚: Seata配置…

【轨迹跟踪】基于自适应跟踪(EAT)方法的无人机/移动机器人轨迹跟踪(MatlabSimulink)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

随着信息技术的快速发展,编程已经成为一个越来越重要的技能。那么,我们该如何入门编程呢?

*随着信息技术的快速发展,编程已经成为一个越来越重要的技能。那么,我们该如何入门编程呢? 一、自学编程需要注意什么? 自学编程需要注意以下几点: 设定清晰的学习目标:在开始学习编程前,你需…

chatgpt赋能python:Python在485读电表方面的应用

Python在485读电表方面的应用 介绍 近年来,随着智能电网和智慧城市的不断发展,越来越多的城市和企事业单位开始关注能源消费情况并采取有效管理手段,实现节能减排。而想要实现对能源消费情况的监测和控制,就需要能够对电表进行读…

Docker数据管理和网络通信

Docker 的数据管理 管理 Docker 容器中数据主要有两种方式:数据卷(Data Volumes)和数据卷容器(DataVolumes Containers)。 1.数据卷 数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机…

MQTT协议基本讲解(结合netty)

正文 前提MQTT结构可变报文头(Variable Header)有效负荷(payload)固定报文头(Fixed Header)消息类型(Message Type)QoS级别标志(0,1,2&#xff09…

Spring Cloud OpenFeign源码解析,代理的魅力一展无遗

文章目录 一、OpenFeign简介二、OpenFeign中Bean的动态装载1、EnableFeignClients2、registerFeignClients3、FeignClientFactoryBean.getObject4、loadBalance5、DefaultTarget.target6、ReflectiveFeign.newInstance生成代理(1)targetToHandlersByName…

C语言字符及字符串讲解

文章目录 前言一、字符介绍和使用二、字符串介绍和使用三、字符串操作函数四、字符串的长度和字符串所占内存空间的大小总结 前言 C 语言中的字符和字符串是常用的数据类型。字符是一个单个的字母、数字、标点符号或者其他可打印的符号,使用单引号 ’ ’ 表示&…

Linux route命令实战:route 命令实战教程,配置静态路由,删除路由表项

前言 大家好,又见面了,我是沐风晓月,本文是专栏【linux基本功-基础命令实战】的第61篇文章。 专栏地址:[linux基本功-基础命令专栏] , 此专栏是沐风晓月对Linux常用命令的汇总,希望能够加深自己的印象&am…

使用大型语言模(LLM)构建系统(四):链式提示

今天我学习了DeepLearning.AI的 Building Systems with LLM 的在线课程,我想和大家一起分享一下该门课程的一些主要内容。 下面是我们访问大型语言模(LLM)的主要代码: import openai#您的openai的api key openai.api_key YOUR-OPENAI-API-KEY def get_…

word如何转化为pdf格式?分享四个方法给大家!

在工作和学习中,经常需要对文档进行转换,其中将Word文档转换为PDF是最常见的格式转换之一。下面介绍几种常用的转换方法,包括使用记灵在线工具。 方法一:使用Word软件直接转换 如果你使用的是电脑上的Word软件,可以直…

vue3ts安装sass(scss)

序 1、我附上个sass的github(跟本教程无关)地址GitHub - sass/sass: Sass makes CSS fun! 2、博主本地环境 "vue": "^3.2.47", "typescript": "^5.0.2" "vite": "^4.3.9", node18.12.1 3、…

外贸企业必看!这五种企业邮箱最适合你的跨国业务需求

在当今的数字世界中,电子邮件的使用对任何外贸企业的成功都至关重要。在技术的冲击下,企业开展运营以及与客户、潜在客户和合作伙伴沟通的方式发生了巨大变化,电子邮件迅速成为外贸中首选的沟通方式。 说到哪种企业邮箱最适合外贸企业使用&am…

MATLAB使用技巧之局部放大图的制作及文本箭头的便捷设置

MATLAB使用技巧之局部放大图的制作及文本箭头的便捷设置 文章目录 MATLAB使用技巧之局部放大图的制作及文本箭头的便捷设置制作局部放大图的方法文本箭头的便捷设置小结 本文主要介绍如何在MATLAB中绘制局部放大图和如何便捷地设置文本箭头的相关内容,以作后续回顾之…

CISP-PTE2022最新考试经验分享

CISP_PTE2022年10月份考试心得体会 2022年9月份由于公司需要,参加了中启航的CISPPTE培训,总培训时间八天,8师傅讲的很好,浅显易懂,经过4天的理论学习和4天的实操练习,经过十一假期的熟练,我在10…

2005-2021年全国及31省绿色信贷水平(含原始数据和测算过程)

1、时间:2005-2021年 2、范围:全国及31省市 4、内容说明:包含原始数据、计算结果、计算过程 5、来源:工业NJ、2018年经济普查、其中2017年缺失已采用插值法补齐 6、计算说明: 选取各省六大高耗能产业利息支出占工…

Unity3D:Project窗口

推荐:将 NSDT场景编辑器 加入你的3D工具链 3D工具集: NSDT简石数字孪生 Project 窗口 “项目”窗口显示与项目相关的所有文件,是您在应用程序中导航和查找资源和其他项目文件的主要方式。默认情况下,当您启动新项目时&#xff0c…

这里推荐几个前端icon网站(动图网站)

1. Loading.ioLoading.io 是一个免费的加载动效(Loading animations)图标库。它提供了多种风格的加载动效图标,包括 SVG、CSS 和 Lottie 动画格式。这些加载图标可以增强用户体验,为网站和应用程序添加更佳的视觉效果。 网站地址:loading.io - Your SVG GIF PNG Ajax Loading…

Vue 中如何处理树形结构数据渲染与操作?

Vue 中如何处理树形结构数据渲染与操作? 在实际开发中,我们经常会遇到需要渲染树形结构数据的情况,例如商品分类、组织架构、地区选择等等。Vue 提供了一些便捷的方法和工具来处理树形结构数据的渲染和操作,本文将介绍 Vue 处理树…

web前端要怎么样自学?

前言 前端入门相关的路线图以及资源都帮大噶准备好啦,希望对想要入门前端的小伙伴们有所帮助~ 先放上前端学习的思维导图 : 学习前准备:编译器 编译器方面的选择推荐HBuilder X或者Vscode,运行环境在浏览器,推荐是ch…