SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SQLite-Union

Zusammenfassung :In diesem Tutorial lernen Sie, wie Sie SQLite UNION verwenden -Operator, um Ergebnismengen von zwei oder mehr Abfragen zu einer einzigen Ergebnismenge zu kombinieren.

Einführung in SQLite UNION Betreiber

Manchmal müssen Sie Daten aus mehreren Tabellen zu einem vollständigen Ergebnissatz kombinieren. Es kann sich um Tabellen mit ähnlichen Daten in derselben Datenbank handeln, oder Sie müssen ähnliche Daten aus mehreren Datenbanken kombinieren.

Um Zeilen aus zwei oder mehr Abfragen zu einer einzigen Ergebnismenge zu kombinieren, verwenden Sie SQLite UNION Operator. Im Folgenden wird die grundlegende Syntax von UNION veranschaulicht Betreiber:

query_1
UNION [ALL]
query_2
UNION [ALL]
query_3
...;Code language: SQL (Structured Query Language) (sql)

Sowohl UNION und UNION ALL Operatoren kombinieren Zeilen aus Ergebnismengen zu einer einzigen Ergebnismenge. Die UNION Operator removes beseitigt doppelte Zeilen, wohingegen der Operator UNION ALL Operator nicht.

Weil die UNION ALL Operator entfernt keine doppelten Zeilen, er läuft schneller als UNION Betreiber.

Die folgenden Regeln gelten für die Vereinigung von Daten:

  • Die Anzahl der Spalten in allen Abfragen muss gleich sein.
  • Die entsprechenden Spalten müssen kompatible Datentypen haben.
  • Die Spaltennamen der ersten Abfrage bestimmen die Spaltennamen der kombinierten Ergebnismenge.
  • Der GROUP BY und HAVING Klauseln werden auf jede einzelne Abfrage angewendet, nicht auf die endgültige Ergebnismenge.
  • Der ORDER BY -Klausel wird auf die kombinierte Ergebnismenge angewendet, nicht innerhalb der einzelnen Ergebnismenge.

Beachten Sie, dass der Unterschied zwischen UNION und JOIN B. INNER JOIN oder LEFT JOIN ist das der JOIN -Klausel kombiniert Spalten aus mehreren verwandten Tabellen, während UNION kombiniert Zeilen aus mehreren ähnlichen Tabellen.

Angenommen, wir haben zwei Tabellen t1 und t2 mit den folgenden Strukturen:

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);Code language: SQL (Structured Query Language) (sql)

Die folgende Anweisung kombiniert die Ergebnismengen der Tabellen t1 und t2 mithilfe von UNION Betreiber:

SELECT v1
  FROM t1
UNION
SELECT v2
  FROM t2;Code language: SQL (Structured Query Language) (sql)

Hier ist die Ausgabe:

Das folgende Bild veranschaulicht die UNION Betrieb der Tabellen t1 und t2:

Die folgende Anweisung kombiniert die Ergebnismengen der Tabellen t1 und t2 mithilfe von UNION ALL Betreiber:

SELECT v1
  FROM t1
UNION ALL
SELECT v2
  FROM t2;Code language: SQL (Structured Query Language) (sql)

Das folgende Bild zeigt die Ausgabe:

Das folgende Bild zeigt UNION ALL Betrieb der Ergebnismengen der Tabellen t1 und t2:

SQLite UNION Beispiele

Nehmen wir einige Beispiele für die Verwendung von UNION Betreiber.

1) SQLite UNION Beispiel

Diese Anweisung verwendet die UNION Operator, um Namen von Mitarbeitern und Kunden in einer einzigen Liste zu kombinieren:

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

Code language: SQL (Structured Query Language) (sql)

Hier ist die Ausgabe:

2) SQLite UNION mit ORDER BY Beispiel

Dieses Beispiel verwendet UNION Operator, um die Namen der Mitarbeiter und Kunden in einer einzigen Liste zu kombinieren. Außerdem verwendet es den ORDER BY -Klausel, um die Namensliste nach Vornamen und Nachnamen zu sortieren.

SELECT FirstName, LastName, 'Employee' AS Type
FROM employees
UNION
SELECT FirstName, LastName, 'Customer'
FROM customers
ORDER BY FirstName, LastName;Code language: SQL (Structured Query Language) (sql)

Hier ist die Ausgabe:

In diesem Tutorial haben Sie gelernt, wie Sie SQLite UNION verwenden -Operator, um Zeilen aus Ergebnismengen zu einer einzigen Ergebnismenge zu kombinieren. Sie haben auch die Unterschiede zwischen UNION kennengelernt und UNION ALL Betreiber.