SELECT column1, column2, ...
FROM table1
WHERE condition
UNION
SELECT column1, column2, ...
FROM table2
WHERE condition;
在这个语法中,table1 和 table2 是要合并的两个表,而 column1, column2, ... 是要选择的列。WHERE 子句是可选的,用于筛选每个 SELECT 语句返回的行。
请注意以下几点:
1. UNION 会自动去除结果集中的重复行。如果想要包含重复行,可以使用 UNION ALL。
-- 包含重复行
SELECT column1, column2, ...
FROM table1
WHERE condition
UNION ALL
SELECT column1, column2, ...
FROM table2
WHERE condition;
2. UNION 要求两个 SELECT 语句中的列数和数据类型必须一致,否则会导致错误。如果列数不同,可以通过在每个 SELECT 语句中使用适当数量的 NULL 来匹配列数。
-- 列数不同,通过增加 NULL 匹配列数
SELECT column1, column2, NULL AS additional_column
FROM table1
WHERE condition
UNION
SELECT column1, column2, additional_column
FROM table2
WHERE condition;
UNION 可以用于合并多个表的结果集,只要它们具有相同的列数和相似的数据类型。
转载请注明出处:http://www.zyzy.cn/article/detail/14034/SQL