SQLite UNION-Klausel

SQLiteUNIONKlausel/Operator wird verwendet, um die Ergebnisse von zwei oder mehr SELECT-Anweisungen zu kombinieren, ohne doppelte Zeilen zurückzugeben.

Um UNION zu verwenden, muss die Anzahl der in jedem SELECT ausgewählten Spalten gleich sein, die gleiche Anzahl von Spaltenausdrücken, die gleichen Datentypen, und sie müssen in derselben Reihenfolge sein, aber sie müssen nicht dieselbe Länge haben.

Syntax

UNIONDie grundlegende Syntax lautet wie folgt:

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

UNION

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

Die hier angegebenen Bedingungen können je nach Bedarf beliebige Ausdrücke sein.

Beispiele

Angenommen, es gibt die folgenden zwei Tabellen: (1) Die COMPANY-Tabelle ist wie unten gezeigt:

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

(2) Die andere Tabelle ist DEPARTMENT, wie unten dargestellt:

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

Nun verwenden wir die SELECT-Anweisung und die UNION-Klausel, um die beiden Tabellen zu verbinden, wie unten gezeigt:

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;

Dies erzeugt das folgende Ergebnis:

EMP_ID      NAME                  DEPT
----------  --------------------  ----------
1           Paul                  IT Billing
2           Allen                 Engineerin
3           Teddy                 Engineerin
4           Mark                  Finance
5           David                 Engineerin
6           Kim                   Finance
7           James                 Finance

UNION-ALL-Klausel

Der UNION ALL-Operator wird verwendet, um die Ergebnisse zweier SELECT-Anweisungen zu kombinieren, einschließlich doppelter Zeilen.

Die Regeln, die für UNION gelten, gelten auch für den UNION ALL-Operator.

Syntax

UNION ALLDie grundlegende Syntax lautet wie folgt:

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

UNION ALL

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

Die hier angegebenen Bedingungen können je nach Bedarf beliebige Ausdrücke sein.

Beispiele

Nun verwenden wir die SELECT-Anweisung und die UNION ALL-Klausel, um die beiden Tabellen zu verbinden, wie unten gezeigt:

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;

Dies erzeugt das folgende Ergebnis:

EMP_ID      NAME                  DEPT
----------  --------------------  ----------
1           Paul                  IT Billing
2           Allen                 Engineerin
3           Teddy                 Engineerin
4           Mark                  Finance
5           David                 Engineerin
6           Kim                   Finance
7           James                 Finance
1           Paul                  IT Billing
2           Allen                 Engineerin
3           Teddy                 Engineerin
4           Mark                  Finance
5           David                 Engineerin
6           Kim                   Finance
7           James                 Finance
Andere Erweiterungen