`UNION` 是 SQL 语言中的一个关键字,用于组合两个或多个 SELECT 查询的结果集。当你想要从不同的表或从不同的部分数据中获取相似的列结构并组合它们的结果时,`UNION` 是非常有用的。重要的是要注意以下几点关于 `UNION` 的使用:
1. **合并相似的结果集**:每个 `SELECT` 查询在 `UNION` 中应该返回相同数量的列,并且这些列的数据类型应该相似或兼容。
2. **自动去重**:默认情况下,`UNION` 会自动去除重复的行。如果你想要保留重复的行,可以使用 `UNION ALL`。
3. **排序**:如果你想要对结果进行排序,通常需要将排序放在整个 `UNION` 查询的最后,这样可以确保排序应用于整个结果集。
示例:
假设有两个表 `tableA` 和 `tableB`,都有相同的列结构(例如 `id` 和 `name`):
```sql
SELECT id, name FROM tableA
UNION
SELECT id, name FROM tableB;
```
如果你想要保留重复的行:
```sql
SELECT id, name FROM tableA
UNION ALL
SELECT id, name FROM tableB;
```
注意:在实际应用中,为了确保 `UNION` 能够正常工作,需要确保所有 `SELECT` 查询的结构是一致的,否则你可能会遇到错误。同时,为了优化性能,考虑在涉及 `UNION` 的查询中使用索引和其他优化策略。