SQL UNION 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。
SQL UNION 语法
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
SQL UNION ALL 语法
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
注释:UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。
演示新闻分类表 pangugle_news_category 所有数据数据如下
category_id | category_title | category_desc | category_createtime | category_admin |
---|---|---|---|---|
1 | 百度 | 百度公司 | 2020-09-16 18:09:52 | admin |
2 | 盘古歌 | 盘古歌技术 | 2020-09-16 18:12:31 | admin |
3 | 谷歌公司 | 2020-09-16 18:12:56 | u1 | |
4 | 阿里巴巴 | 阿里巴巴公司 | 2020-09-16 18:13:20 | u1 |
5 | 腾讯公司 | 2020-09-16 18:13:36 | u1 |
pangugle_news_article 文章表数据
article_id | article_category_id | article_title | article_desc | article_createtime | article_admin |
---|---|---|---|---|---|
1 | 1 | 百度文章 | 百度文章描述 | 2020-09-17 11:22:54 | u1 |
2 | 2 | 盘古文章 | 盘古文章描述 | 2020-09-17 11:23:46 | u2 |
3 | 3 | Google 文章 | Google文章描述 | 2020-09-17 11:24:57 | u3 |
SQL UNION 实例
实例
select category_title as title from pangugle_news_category
union
select article_title as title from pangugle_news_article
执行以上 SQL 输出结果如下:
title |
---|
百度 |
盘古歌 |
阿里巴巴 |
百度文章 |
盘古文章 |
Google 文章 |
注释:UNION 不能用于列出两个表中所有的相同的值。如果相同,只会列出一次。UNION 只会选取不同的值。请使用 UNION ALL 来选取重复的值!
SQL UNION ALL 实例
下面的 SQL 语句使用 UNION ALL 从 "pangugle_news_category" 和 "pangugle_news_article" 表中选取所有的 id(也有重复的值):
select category_id as id from pangugle_news_category
union all
select article_id as id from pangugle_news_article
id |
---|
1 |
2 |
3 |
4 |
5 |
1 |
2 |
3 |