Sqlite 简明教程
SQLite - UNION Clause
SQLite UNION 子句/运算符用于合并两个或更多 SELECT 语句的结果,而不返回任何重复行。
SQLite UNION clause/operator is used to combine the results of two or more SELECT statements without returning any duplicate rows.
要使用 UNION,每个 SELECT 都必须选择相同数量的列,相同数量的列表达式,相同的数据类型,并且按相同的顺序排列,但不必相同长度。
To use UNION, each SELECT must have the same number of columns selected, the same number of column expressions, the same data type, and have them in the same order, but they do not have to be of the same length.
Syntax
以下是 UNION 的基本语法。
Following is the basic syntax of UNION.
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
UNION
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
这里给定的条件可以是根据您的要求给出的任何表达式。
Here the given condition could be any given expression based on your requirement.
Example
考虑以下两张表,(a) COMPANY 表如下 −
Consider the following two tables, (a) COMPANY table as follows −
sqlite> select * from COMPANY;
ID NAME AGE ADDRESS SALARY
---------- -------------------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
(b) 另一张表 DEPARTMENT 如下:
(b) Another table is DEPARTMENT as follows −
ID DEPT EMP_ID
---------- -------------------- ----------
1 IT Billing 1
2 Engineering 2
3 Finance 7
4 Engineering 3
5 Finance 4
6 Engineering 5
7 Finance 6
现在让我们使用 SELECT 语句和 UNION 子句将这两个表联接如下 −
Now let us join these two tables using SELECT statement along with UNION clause as follows −
sqlite> SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT
ON COMPANY.ID = DEPARTMENT.EMP_ID
UNION
SELECT EMP_ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT
ON COMPANY.ID = DEPARTMENT.EMP_ID;
这将产生以下结果。
This will produce the following result.
EMP_ID NAME DEPT
---------- -------------------- ----------
1 Paul IT Billing
2 Allen Engineering
3 Teddy Engineering
4 Mark Finance
5 David Engineering
6 Kim Finance
7 James Finance
The UNION ALL Clause
UNION ALL 运算符用于合并两个 SELECT 语句的结果,包括重复行。
The UNION ALL operator is used to combine the results of two SELECT statements including duplicate rows.
适用于 UNION 的相同规则也适用于 UNION ALL 运算符。
The same rules that apply to UNION apply to the UNION ALL operator as well.
Syntax
以下是 UNION ALL 的基本语法。
Following is the basic syntax of UNION ALL.
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
UNION ALL
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
这里给定的条件可以是根据您的要求给出的任何表达式。
Here the given condition could be any given expression based on your requirement.
Example
现在,让我们在我们的 SELECT 语句中连接上述两个表,如下所示 −
Now, let us join the above-mentioned two tables in our SELECT statement as follows −
sqlite> SELECT EMP_ID, NAME, DEPT FROM COMPANY INNER JOIN DEPARTMENT
ON COMPANY.ID = DEPARTMENT.EMP_ID
UNION ALL
SELECT EMP_ID, NAME, DEPT FROM COMPANY LEFT OUTER JOIN DEPARTMENT
ON COMPANY.ID = DEPARTMENT.EMP_ID;
这将产生以下结果。
This will produce the following result.
EMP_ID NAME DEPT
---------- -------------------- ----------
1 Paul IT Billing
2 Allen Engineering
3 Teddy Engineering
4 Mark Finance
5 David Engineering
6 Kim Finance
7 James Finance
1 Paul IT Billing
2 Allen Engineering
3 Teddy Engineering
4 Mark Finance
5 David Engineering
6 Kim Finance
7 James Finance