一篇文章学会 MySQL UNION

组合查询 UNION

UNION 运算符用于合并两个或多个 SELECT 语句的结果集,去除重复行。它在 SQL 中非常有用,可以用于多种场景,例如:

1. 从不同的表中获取相似数据:

假设有两个表,customers 和 leads,都包含姓名和邮箱信息。可以使用 UNION 合并两个表中的数据,获取所有潜在客户的信息:

SELECT name, email FROM customers
UNION
SELECT name, email FROM leads;

2. 将多个查询结果合并成一个结果集:

例如,想要获取某个产品类别下价格低于 100 的产品,以及另一个类别下价格高于 500 的产品,可以使用 UNION:

SELECT name, price FROM products WHERE category = 'A' AND price < 100
UNION
SELECT name, price FROM products WHERE category = 'B' AND price > 500;

3. 处理 NULL 值:

UNION 默认会去除重复行,包括 NULL 值。如果想保留 NULL 值,可以使用 UNION ALL:

SELECT name, email FROM customers
UNION ALL
SELECT name, email FROM leads;

UNION 的使用规则

  • 参与 UNION 的 SELECT 语句必须拥有相同数量的列。

  • 对应列的数据类型必须兼容。

  • 默认情况下,UNION 会去除重复行。使用 UNION ALL 保留所有行,包括重复行。

  • 可以使用 ORDER BY 对最终结果集进行排序,但 ORDER BY 子句必须放在最后一个 SELECT 语句之后。

UNION 的优势

  • 简化查询: 可以将多个查询合并成一个,提高代码可读性。

  • 提高效率: 某些情况下,使用 UNION 比多次执行查询更有效率。

  • 数据整合: 可以方便地从不同数据源获取数据,并进行整合分析。

示例

查询所有用户的名字和邮箱,并按名字排序:

SELECT name, email FROM users
UNION
SELECT name, email FROM admins
ORDER BY name;

查询价格低于 50 的产品,或者库存数量大于 100 的产品:

SELECT name, price FROM products WHERE price < 50
UNION
SELECT name, price FROM products WHERE quantity > 100;

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

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

相关文章

智能小车-轮趣wheeltec(原版代码)

上一届大佬的 红绿灯识别代码&#xff0c;此代码需要在ubuntu系统下&#xff0c;与ROS配合使用&#xff1a; Xtrak 塔克小车巡线代码以及红绿灯识别相关小改动_search_top0 mask-CSDN博客 line.follow原版 源代码&#xff1a; #------------------------------------------…

现代C++新特性——constexpr

在计算机科学中&#xff0c;字面量&#xff08;literal&#xff09;是在源代码中的 value 的文本表示。字面量和变量、常量是同一个级别的概念&#xff0c;常被用于初始化变量。字面量是编译期常量&#xff0c;效率极高。 常量表达式&#xff08;const expression&#xff09;是…

【MySQL 数据宝典】【磁盘结构】- 005 Undo log 撤销日志

一、基本介绍 ​ 每当我们要对一条记录做改动时&#xff08;这里的改动可以指 INSERT 、 DELETE 、 UPDATE &#xff09;&#xff0c;都需要留一手 -> 把回滚时所需的东西都给记下来 ​ 你插入一条记录时&#xff0c;至少要把这条记录的主键值记下来&#xff0c;之后回滚的…

【后端】django查询时的性能优化技巧

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、为什么需要性能优化二、性能优化的常用技巧三、总结 前言 随着开发语言的不断普及&#xff0c;越来越多的项目建设场景会遇到性能瓶颈&#xff0c;本文就介…

自定义数据 微调CLIP (结合paper)

CLIP 是 Contrastive Language-Image Pre-training 的缩写&#xff0c;是一个擅长理解文本和图像之间关系的模型&#xff0c;下面是一个简单的介绍&#xff1a; 优点&#xff1a; CLIP 在零样本学习方面特别强大&#xff0c;它可以&#xff08;用自然语言&#xff09;给出图像…

【深度学习】行人跌倒行为检测软件系统

行人跌倒检测系统在各个领域的应用都对社会的整体健康、安全和福祉产生积极影响&#xff0c;为人们的生活和工作提供了更加安全和可靠的环境&#xff0c; 本文主要使用YOLOV8深度学习框架自训练了一个“行人跌倒检测模型”&#xff0c;基于此模型使用PYQT5实现了一款界面软件用…

Visual Studio2022中使用水晶报表

1.创建水晶报表项目 选择需要的表 自动生成连接 选项:可跳过 后续还有一些 都能跳过 看你自己的需求 自己选的样式

Linux中的高级IO函数(三)fcntl

Linux提供了很多高级的I/O函数。它们并不像Linux基础I/O函数&#xff08;比如open和read&#xff09;那么常用&#xff08;编写内核模块时一般要实现这些I/O函数&#xff09;&#xff0c;但在特定的条件下却表现出优秀的性能。这些函数大致分为三类&#xff1a; 用于创建文件描…

39. 【Android教程】触摸事件分发

用户在使用 Andriod 系统的时候会不断的和我们的 App 进行各种类型的交互&#xff08;类似点击、滑动等等&#xff09;&#xff0c;“事件”就是一个非常有效的用来收集用户行为的方式。在前面章节有提到过&#xff1a;Android 系统采用一个先进先出&#xff08;FIFO&#xff0…

使用IPEX-LLM加速大语音模型LLM

IPEX-LLM是一个用于在英特尔CPU和GPU&#xff08;如本地PC的iGPU、独立显卡如Arc、Flex和Max&#xff09;上加速本地LLM推理和微调的PyTorch库。 IPEX-LLM是BigDL-LLM的升级版。IPEX-LLM基于英特尔PyTorch扩展库&#xff08;IPEX&#xff09;以及llama.cpp、bitsandbytes、vLL…

PostgreSQL 免费的对象-关系数据库

目录 一、什么是数据库 二、ORDBMS 的一些术语 三、PostgreSQL 概述 四、PostgreSQL数据库优点和缺点 4.1PostgreSQL数据库的优点 4.2PostgreSQL数据库的缺点 4.3PostgreSQL 特征 五、Linux 上安装 PostgreSQL 5.1Yum 安装 PostgreSQL 5.1.1安装postgreSQL的官方yum仓…

54、图论-实现Trie前缀树

思路&#xff1a; 主要是构建一个trie前缀树结构。如果构建呢&#xff1f;看题意&#xff0c;应该当前节点对象下有几个属性&#xff1a; 1、next节点数组 2、是否为结尾 3、当前值 代码如下&#xff1a; class Trie {class Node {boolean end;Node[] nexts;public Node(…

Jammy@Jetson Orin - Tensorflow Keras Get Started

JammyJetson Orin - Tensorflow & Keras Get Started 1. 源由2. 步骤3. 预期&展望4. 总结5. 参考资料 1. 源由 之前过年的时候&#xff0c;花了两周的时间过了一遍 《ubuntu22.04laptop OpenCV Get Started》。 后续更多的时间需要再GPU算法上下功夫&#xff0c;目前…

如何在PostgreSQL中使用索引覆盖扫描提高查询性能?

文章目录 解决方案1. 创建合适的索引2. 确保查询能够使用索引覆盖扫描3. 调整查询以利用索引覆盖扫描4. 监控和调优 示例代码1. 创建索引2. 编写查询3. 检查是否使用索引覆盖扫描4. 调整索引 总结 在PostgreSQL中&#xff0c;索引是提高查询性能的关键工具之一。索引允许数据库…

Mybatis-plus 分页 自定义count方法

起因 使用了mybatisplus语句中有order by 语法mybatisplus会使用 select count(*) from (子语句) TOTAL 算出total但是会报错 查询条件QueryWrapper中还有order by排序条件,则生成的select count(*) from(sql) 就会报错 除非另外还指定了 TOP、OFFSET 或 FOR XML&#xff0c;否…

文章生成器免费版有哪些,哪个好用?

作为一个长期需要写作的人&#xff0c;对文章生成器自然是非常了解&#xff0c;如果搜文章生成器互联网上多到让人应接不暇&#xff0c;但小编今天要谈的是文章生成器免费版&#xff0c;因为看到很多写手朋友都想找一个免费的文章生成器来用&#xff0c;但是大家在网上搜可能很…

GITHUB的VB代码无法加载的问题解决

GITHUB里有不少好的VB代码&#xff0c;但是下载之后&#xff0c;经常出现工程加载出错的问题&#xff0c;例如&#xff1a; LOG文件为&#xff1a; 不能加载 0 行 0: 不能加载文件 D:\xxxx\Semi VB API Loader\frmMain.frm 。 原因其实很简单&#xff0c;github里的换行符是u…

巧用Stream流解决Page分页连表查询一对多展示错误的问题

1. 简介 在数据库一对多的情况下&#xff0c;使用Page分页查询这种Vo的时候如果直接查询会导致每页展示的条数不一致。 简单的代码如下 用户类 public class User{private Integer id; }地址类 public class UserAddress {private Integer id;private String address;private…

Promise.all 的方法还没执行完就执行了.then

碰见一个问题&#xff0c;接盘了一个有问题的页面修改。 改变日期后 查询很多数据再去重新加载页面上的数据显示相关的组件。 问题就来了。 加载异常捏…… 最后我一通查&#xff1a; 重点来了 是因为这个Promise.all(数组)&#xff0c;里边这个数组的问题。现在是在数据中…

【机器学习】分类与预测算法的评价与优化

以实际案例解析F1值与P-R曲线的应用 一、分类算法与性能评价的重要性二、F1值与P-R曲线的概念与意义三、实例解析&#xff1a;以垃圾邮件检测为例四、代码实现与结果分析五、结论与展望 在数据驱动的时代&#xff0c;机器学习算法以其强大的数据处理和分析能力&#xff0c;成为…