欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > union all 关联查询

union all 关联查询

2025/4/19 9:52:38 来源:https://blog.csdn.net/weixin_42795092/article/details/147255629  浏览:    关键词:union all 关联查询

UNION ALL 并非用于表的关联查询,而是用于将多个 SELECT 语句的结果集合并成一个结果集。它会保留所有重复的行,不像 UNION 会去除重复行。下面为你提供几种使用 UNION ALL 的场景示例。

示例表结构

假设存在两个表 sales_2024 和 sales_2025,它们的结构相同,都有 sale_id(销售编号)、product_name(产品名称)、quantity(销售数量)和 sale_date(销售日期)字段。

1. 合并两个表的数据

下面的 SQL 语句使用 UNION ALL 把 sales_2024 和 sales_2025 表的数据合并成一个结果集:

union-all-queryMySQL UNION ALL 关联查询示例

生成 union_all_two_tables.sql

SELECT sale_id, product_name, quantity, sale_date
FROM sales_2025
WHERE quantity > 100
UNION ALL
SELECT sale_id, product_name, quantity, sale_date
FROM sales_2025
WHERE quantity <= 100;

生成 union_all_different_conditions.sql

SELECT sale_id, product_name, quantity, sale_date
FROM sales_2024
UNION ALL
SELECT sale_id, product_name, quantity, sale_date
FROM sales_2025; 

生成 union_all_with_join.sql

SELECT s.sale_id, p.product_name, s.quantity, s.sale_date
FROM sales_2024 s
JOIN products p ON s.product_name = p.product_name
UNION ALL
SELECT s.sale_id, p.product_name, s.quantity, s.sale_date
FROM sales_2025 s
JOIN products p ON s.product_name = p.product_name;  

2. 合并不同条件下的查询结果

假设你想从 sales_2025 表中分别获取销售量大于 100 和销售量小于等于 100 的记录,并将它们合并成一个结果集,可以使用如下 SQL 语句:

3. 结合关联查询使用 UNION ALL

若要在关联查询中使用 UNION ALL,可以先进行关联查询,然后将多个关联查询的结果合并。假设除了 sales_2024 和 sales_2025 表,还有一个 products 表,包含 product_id(产品编号)和 product_name(产品名称)字段。下面的 SQL 语句将两个年份的销售数据与产品表关联查询的结果合并:

你可根据实际的表结构和业务需求对上述 SQL 语句进行调整。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词