两张表union all 后想按照其中某个字段进行去重,怎么处理?
时间: 2024-10-25 18:05:07 浏览: 7
MySQL Union合并查询数据及表别名、字段别名用法分析
当你使用 `UNION ALL` 合并两张表之后,由于 `UNION ALL` 会保留所有独特的行,包括重复的行,所以如果你想要基于特定字段去重,通常在合并后可以直接进行筛选操作。在SQL中,这可以通过 `DISTINCT` 关键字实现。假设你想根据 `column_name` 进行去重,你应该这样做:
```sql
CREATE VIEW unique_view AS
SELECT DISTINCT *
FROM
(
SELECT * FROM table1
UNION ALL
SELECT * FROM table2
) combined_table;
-- 或者,如果你只想对特定字段去重
SELECT DISTINCT column_name, other_columns
FROM
(
SELECT column_name, other_columns FROM table1
UNION ALL
SELECT column_name, other_columns FROM table2
) combined_table;
```
在这个例子中,`unique_view` 就是一个只包含两个表中 `column_name` 字段唯一值的新视图。
阅读全文