English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQLite UNION Clause

SQLite UNIONSub-clause/The operator is used to merge the results of two or more SELECT statements without returning any duplicate rows.

To use UNION, each SELECT must have the same number of selected columns, the same number of column expressions, the same data types, and the same order, but their lengths do not have to be the same.

Syntax

The following isUNIONThe basic syntax.

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
UNION
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

Here, the given condition can be any given expression according to your requirements.

Example

Consider the following two tables, (a) The COMPANY table is 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) Another table is the department (DEPARTMENT)--

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

Now, let's use the SELECT statement and UNION clause to connect the two tables as shown below:

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 results.

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

UNION ALL clause

The UNION ALL operator is used to combine the results of two SELECT statements, including duplicate rows.

The same rules that apply to UNION also apply to the UNION ALL operator.

Syntax

The basic syntax is as followsUNION ALL.

SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]
UNION ALL
SELECT column1 [, column2 ]
FROM table1 [, table2 ]
[WHERE condition]

Here, the given condition can be any given expression according to your requirements.

Example

Now, let's connect the two tables as follows in the SELECT statement:

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 results.

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