SQLite - UNION 子句

来源:这里教程网 时间:2026-03-25 11:52:28 作者:

简述

SQLite UNION 子句/运算符用于组合两个或多个 SELECT 语句的结果而不返回任何重复的行。要使用 UNION,每个 SELECT 必须选择相同数量的列、相同数量的列表达式、相同的数据类型,并且它们的顺序相同,但它们的长度不必相同。

句法

以下是基本语法 UNION.

SELECT column1 [, column2 ]FROM table1 [, table2 ][WHERE condition]UNIONSELECT column1 [, column2 ]FROM table1 [, table2 ][WHERE condition]这里给定的条件可以是基于您的要求的任何给定表达式。

例子

考虑以下两个表,(a) COMPANY表如下 -

sqlite> select * from COMPANY;ID NAME AGE ADDRESS SALARY---------- -------------------- ---------- ---------- ----------1 Paul 32 California 20000.02 Allen 25 Texas 15000.03 Teddy 23 Norway 20000.04 Mark 25 Rich-Mond 65000.05 David 27 Texas 85000.06 Kim 22 South-Hall 45000.07 James 24 Houston 10000.0(b) 另一个表是DEPARTMENT,如下所示 -

ID DEPT EMP_ID---------- -------------------- ----------1 IT Billing 12 Engineering 23 Finance 74 Engineering 35 Finance 46 Engineering 57 Finance 6现在让我们使用 SELECT 语句和 UNION 子句连接这两个表,如下所示 -

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;这将产生以下结果。

EMP_ID NAME DEPT---------- -------------------- ----------1 Paul IT Billing2 Allen Engineering3 Teddy Engineering4 Mark Finance5 David Engineering6 Kim Finance7 James Finance

UNION ALL 条款

UNION ALL 运算符用于组合包括重复行在内的两个 SELECT 语句的结果。适用于 UNION 的相同规则也适用于 UNION ALL 运算符。

句法

以下是基本语法 UNION ALL.

SELECT column1 [, column2 ]FROM table1 [, table2 ][WHERE condition]UNION ALLSELECT column1 [, column2 ]FROM table1 [, table2 ][WHERE condition]这里给定的条件可以是基于您的要求的任何给定表达式。

例子

现在,让我们在 SELECT 语句中加入上述两个表,如下所示 -

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;这将产生以下结果。

EMP_ID NAME DEPT---------- -------------------- ----------1 Paul IT Billing2 Allen Engineering3 Teddy Engineering4 Mark Finance5 David Engineering6 Kim Finance7 James Finance1 Paul IT Billing2 Allen Engineering3 Teddy Engineering4 Mark Finance5 David Engineering6 Kim Finance7 James Finance

相关推荐

热文推荐