Skip to main content

SQLite UNION与示例,UNION与UNION ALL

SQLite联合算子简介

有时,需要将多个表中的数据组合成一个完整的结果集。它可能适用于同一数据库中具有相似数据的表,或者可能需要组合来自多个数据库的相似数据。

要将两个或多个查询中的行组合到单个结果集中,可以使用SQLite UNION运算符。下面说明了UNION运算符的基本语法:

query_1
UNION [ALL]
query_2
UNION [ALL]
query_3
...;

UNION和UNION ALL运算符都将结果集中的行合并到一个结果集中。UNION运算符删除消除重复行,而UNION ALL运算符不删除。

由于UNION ALL运算符不会删除重复的行,因此其运行速度比UNION运算符快。

以下是工会数据的规则:

请注意,UNION和JOIN(例如内部JOIN或LEFT JOIN)之间的区别在于,JOIN子句组合了多个相关表中的列,而UNION组合了多个类似表中的行。

假设我们有两个表t1和t2,其结构如下:

CREATE TABLE t1(
v1 INT
);

INSERT INTO t1(v1)
VALUES(1),(2),(3);

CREATE TABLE t2(
v2 INT
);
INSERT INTO t2(v2)
VALUES(2),(3),(4);

下面的语句使用UNION运算符组合t1和t2表的结果集:

SELECT v1
FROM t1
UNION
SELECT v2
FROM t2;

以下是输出:

SQLite UNION example

下图说明了t1和t2表的并集操作:

SQLite UNION

以下语句使用UNION ALL运算符组合t1和t2表格的结果集:

SELECT v1
FROM t1
UNION ALL
SELECT v2
FROM t2;

下图显示了输出:

SQLite UNION ALL example

下图说明了t1和t2表的结果集的UNION ALL运算:

SQLite UNION ALL

SQLite联合示例

让我们举几个使用并集运算符的例子。

1) SQLite联合示例

此声明使用工会运营商将员工和客户的姓名合并到一个列表中:

SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers;


以下是输出:

2) SQLite并集与ORDER BY example

本例使用UNION操作符将员工和客户的姓名合并到一个列表中。此外,它还使用ORDER BY子句按名字和姓氏对名称列表进行排序。

SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers
ORDER BY FirstName, LastName;

以下是输出:

SQLITE UNION with ORDER BY example

在本教程中,您学习了如何使用SQLite UNION运算符将结果集中的行合并到单个结果集中。您还了解了UNION和UNION ALL运算符之间的区别。