联合查询:UNION与UNION ALL

引言 UNION用于合并多个SELECT语句的结果集,适用于需要从不同表或不同条件查询结果合并的场景。 一、UNION基础 1.1 基本语法 SELECT column1, column2 FROM table1 UNION SELECT column1, column2 FROM table2; 要求: 列数必须相同 列的数据类型要兼容 默认去重 1.2 示例 -- 合并2024年和2025年的订单 SELECT order_id, amount, '2024' AS year FROM orders_2024 UNION SELECT order_id, amount, '2025' AS year FROM orders_2025; 二、UNION vs UNION ALL 2.1 UNION - 去重合并 SELECT name FROM products WHERE category = '手机' UNION SELECT name FROM products WHERE price > 5000; 特点: 自动去重 性能较差(需要排序去重) 2.2 UNION ALL - 保留重复 SELECT name FROM products WHERE category = '手机' UNION ALL SELECT name FROM products WHERE price > 5000; 特点: 保留所有记录(包括重复) 性能好(不需要去重) 2.3 性能对比 -- UNION:去重需要额外排序,慢 EXPLAIN SELECT id FROM orders_2024 UNION SELECT id FROM orders_2025; -- Extra: Using temporary -- UNION ALL:直接合并,快 EXPLAIN SELECT id FROM orders_2024 UNION ALL SELECT id FROM orders_2025; -- Extra: (无) 建议: ...

2025-11-20 · maneng

如约数科科技工作室

浙ICP备2025203501号

👀 本站总访问量 ...| 👤 访客数 ...| 📅 今日访问 ...