力扣数据库题库学习(5.8日)--mysql UNION与UNION ALL方法使用详解

UNION ALL

UNION ALL 是 SQL 中用于合并两个或多个查询结果集的操作符。它将两个或多个查询的结果集堆叠在一起,不去重重复的行。

使用方法:

UNION ALL 的语法如下:

sql 复制代码
SELECT column1, column2, ...
FROM table1
UNION ALL
SELECT column1, column2, ...
FROM table2;

其中,column1, column2, ... 是要查询的列,而 table1table2 是要查询的表。

示例 1:合并两个表的结果集

假设有两个表 CustomersSuppliers,它们有一些共同的列,我们想要将它们的数据合并成一个结果集。

sql 复制代码
SELECT customer_id, name, email
FROM Customers
UNION ALL
SELECT supplier_id, name, email
FROM Suppliers;

这个查询会将 Customers 表和 Suppliers 表的数据合并成一个结果集,包括了所有的行,不去重。

示例 2:合并查询的结果集

假设我们有两个查询,它们的列相同,我们想要将它们的结果集合并起来。

sql 复制代码
SELECT product_id, name, price
FROM Products
WHERE category = 'Electronics'
UNION ALL
SELECT product_id, name, price
FROM Products
WHERE category = 'Clothing';

这个查询会将两个子查询的结果集合并成一个结果集,包括了所有满足条件的行,不去重。

总的来说,UNION ALL 用于合并多个查询的结果集,它会将所有行都包含在结果集中,不去重。

UNION

UNION 是 SQL 中用于合并两个查询结果集的操作符。它将两个查询的结果集合并在一起,并自动去重重复的行。

使用方法:

UNION 的语法如下:

sql 复制代码
SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;

其中,column1, column2, ... 是要查询的列,而 table1table2 是要查询的表。

示例 1:合并两个表的结果集并去重

假设有两个表 CustomersSuppliers,它们有一些共同的列,我们想要将它们的数据合并成一个结果集,并去重重复的行。

sql 复制代码
SELECT customer_id, name, email
FROM Customers
UNION
SELECT supplier_id, name, email
FROM Suppliers;

这个查询会将 Customers 表和 Suppliers 表的数据合并成一个结果集,并去除重复的行。

示例 2:合并查询的结果集并去重

假设我们有两个查询,它们的列相同,我们想要将它们的结果集合并起来,并去重。

sql 复制代码
SELECT product_id, name, price
FROM Products
WHERE category = 'Electronics'
UNION
SELECT product_id, name, price
FROM Products
WHERE category = 'Clothing';

这个查询会将两个子查询的结果集合并成一个结果集,并去除重复的行。

总的来说,UNION 用于合并两个查询的结果集,并自动去重。

相关推荐
大模型码小白3 分钟前
向量化引擎与 AI 排障:当 SIMD 遇到异常检测,存储诊断的范式转移
java·大数据·数据库·人工智能·python
HYDtomako1 小时前
Claude Code学习
学习·ai·agent·claude code
AOwhisky2 小时前
Python 学习笔记(第十一期)——运维自动化(上·后篇):进程级监控与子进程管理——psutil进阶
运维·开发语言·python·学习·云原生·运维开发
刘小八2 小时前
Redis 缓存一致性:一文讲透延时双删原理、并发时序
java·数据库·redis·缓存
Ethan01072 小时前
pt-deadlock-logger 检测死锁
mysql
糖果店的幽灵2 小时前
【langgraph 从入门到精通graphApi 篇】Command 与动态流程控制
android·java·数据库·人工智能·langgraph
凉、介2 小时前
Virtio(三):Virtqueue 建立与 Buffer 提交
笔记·学习·嵌入式·arm·虚拟化·virtio
Ethan01072 小时前
数据库死锁-应用层重试
mysql
大模型丫丫2 小时前
Agent开发的难点是什么呢?
大数据·人工智能·学习
数行拙笔2 小时前
Redis---zset类型
数据库·redis·缓存