在 SQLite 中,UNION 子句用于合并两个或多个 SELECT 语句的结果集,并返回一个包含所有行的结果集。请注意,UNION 的基本规则是结果集的列数和对应列的数据类型必须相同。以下是一个简单的例子:
-- 创建两个示例表
CREATE TABLE fruits_a (
    id INTEGER PRIMARY KEY,
    name TEXT
);

CREATE TABLE fruits_b (
    id INTEGER PRIMARY KEY,
    name TEXT
);

-- 向表中插入一些数据
INSERT INTO fruits_a (name) VALUES ('Apple'), ('Banana'), ('Orange');
INSERT INTO fruits_b (name) VALUES ('Grapes'), ('Banana'), ('Watermelon');

-- 使用 UNION 合并两个表的结果
SELECT name FROM fruits_a
UNION
SELECT name FROM fruits_b;

在这个例子中,两个表 fruits_a 和 fruits_b 包含相同的列(name 列)。通过使用 UNION,你可以合并两个表中不同的水果名称,并去除重复项,最终得到一个包含所有不同水果名称的结果集。

如果你想包含重复项,可以使用 UNION ALL:
-- 使用 UNION ALL 合并两个表的结果,包含重复项
SELECT name FROM fruits_a
UNION ALL
SELECT name FROM fruits_b;

需要注意的是,使用 UNION 或 UNION ALL 时,查询的每个部分必须具有相同的列数和相似的数据类型。 UNIONS 还可以用于更多的 SELECT 语句的合并,只要满足列数和数据类型的一致性要求。


转载请注明出处:http://www.pingtaimeng.com/article/detail/14186/SQLite