SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

假设我们有两个表:students_usa 和 students_uk,它们都有 id, name, 和 country 列。
利用 UNIONsql复制代码
SELECT name FROM students_usa
UNION
SELECT name FROM students_uk;
这将返回一个结果集,个中包含了 students_usa 和 students_uk 表中所有不重复的学生名字。
利用 UNION ALLsql复制代码
SELECT name FROM students_usa
UNION ALL
SELECT name FROM students_uk;
这将返回一个结果集,个中包含了 students_usa 和 students_uk 表中所有的学生名字,包括重复的名字。
特点UNION 返回的结果集中的列数必须相同。UNION 返回的结果集中的对应列的数据类型必须相同或兼容。UNION 会自动去除重复的行。UNION ALL 会保留所有的行,包括重复的行。默认情形下,UNION 会按照第一个 SELECT 语句中的列的顺序进行排序。你可以利用 ORDER BY 对 UNION 或 UNION ALL 的结果进行排序。利用ORDER BY你可以对 UNION 或 UNION ALL 的结果进行排序。但是,请把稳,如果你须要排序,最好在末了一个 SELECT 语句后利用 ORDER BY。
sql复制代码
(SELECT name FROM students_usa)
UNION
(SELECT name FROM students_uk)
ORDER BY name;
这将返回一个按名字排序的结果集,个中包含了 students_usa 和 students_uk 表中所有不重复的学生名字。
性能考虑利用 UNION 可能会比单独的 SELECT 语句慢,尤其是在处理大量数据时。这是由于 UNION 须要合并两个或多个结果集,并可能须要去除重复的行。如果可能的话,考虑利用其他查询优化策略,如索引、分区等,来提高性能。
总之,UNION 是一个强大的工具,可以方便地合并多个 SELECT 语句的结果集。但是,利用时须要把稳其特点,并确保查询是有效和高效的。