sqlite的 UNION 子句/运算符用于合并两个或多个 SELECT 语句的结果,不返回任何重复的行。
为了使用 UNION,每个 SELECT 被选择的列数必须是相同的,相同数目的列表达式,相同的数据类型,并确保它们有相同的顺序,但它们不必具有相同的长度。
语法
UNION 的基本语法如下:
SELECT column1 [,column2 ] FROM table1 [,table2 ] [WHERE condition] UNION SELECT column1 [,table2 ] [WHERE condition]
这里给定的条件根据需要可以是任何表达式。
实例
假设有下面两个表,(1)COMPANY 表如下所示:
(2)另一个表是 DEPARTMENT,如下所示:
现在,让我们使用 SELECT 语句及 UNION 子句来连接两个表,如下所示:
sqlite> SELECT EMP_ID,NAME,DEPT FROM COMPANY INNER JOIN DEPARTMENT ON COMPANY.ID = DEPARTMENT.EMP_ID UNION SELECT EMP_ID,DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT ON COMPANY.ID = DEPARTMENT.EMP_ID;
这将产生以下结果:
UNION ALL 子句
UNION ALL 运算符用于结合两个 SELECT 语句的结果,包括重复行。
适用于 UNION 的规则同样适用于 UNION ALL 运算符。
语法
UNION ALL 的基本语法如下:
SELECT column1 [,table2 ] [WHERE condition] UNION ALL SELECT column1 [,table2 ] [WHERE condition]
这里给定的条件根据需要可以是任何表达式。
实例
现在,让我们使用 SELECT 语句及 UNION ALL 子句来连接两个表,如下所示:
sqlite> SELECT EMP_ID,DEPT FROM COMPANY INNER JOIN DEPARTMENT ON COMPANY.ID = DEPARTMENT.EMP_ID UNION ALL SELECT EMP_ID,DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT ON COMPANY.ID = DEPARTMENT.EMP_ID;
这将产生以下结果: