Union-Klausel
Swipe um das Menü anzuzeigen
Du hast die Aufmerksamkeit eines Kunden auf dich gezogen, der SQL-Abfragen benötigt. Bevor du dich mit JOINs beschäftigst, lernst du die UNION-Klausel kennen, die unerlässlich ist, um mehrere Tabellen zu kombinieren.
UNION in SQL wird verwendet, um die Ergebnisse von zwei oder mehr SELECT-Abfragen zu einem einzigen Ergebnismenge zusammenzuführen. Damit können Zeilen aus mehreren Abfragen in einem einzigen Datensatz zusammengeführt werden.
Hier sind einige wichtige Punkte zur Verwendung von UNION:
-
Anzahl und Reihenfolge der Spalten: Alle mit
UNIONkombinierten Abfragen müssen die gleiche Anzahl an Spalten in der gleichen Reihenfolge haben; -
Datentypen: Die Spalten in jeder Abfrage müssen kompatible Datentypen besitzen;
-
Eindeutige Zeilen: Standardmäßig entfernt
UNIONdoppelte Zeilen. VerwendeUNION ALL, wenn Duplikate beibehalten werden sollen.
Zum besseren Verständnis, wie Tabellen korrekt mit der UNION-Klausel kombiniert werden, wurde eine zusätzliche Tabelle eingeführt, die Informationen über contractors enthält.
Hier sind nur wenige Informationen vorhanden: first_name, last_name und email.
Es ist ersichtlich, dass diese Tabelle Ähnlichkeiten mit der employees-Tabelle aufweist. Mit der UNION-Klausel können diese beiden Tabellen kombiniert werden, um beispielsweise eine Liste aller Namen und Nachnamen von employees und contractors im Unternehmen anzuzeigen.
Dazu wird die UNION-Klausel verwendet:
12345678(SELECT employee_id as id, first_name, last_name FROM employees) UNION (SELECT contractor_id as id, first_name, last_name FROM contractors) ORDER BY id
Es gibt zwei Abfragen, die jeweils drei Spalten mit denselben Datentypen zurückgeben. Ziel ist es, die Id, first_name und last_name aller Personen im Unternehmen anzuzeigen. Die Spalte Id wurde ebenfalls umbenannt, sodass beide Abfragen identische Spaltennamen haben.
UNION kombiniert die Ergebnisse dieser Abfragen und entfernt Duplikate (obwohl hier keine vorhanden sind).
Abschließend werden die Ergebnisse mit Id nach ORDER BY sortiert.
Die Ergebnisse werden nach Id sortiert, einer gemeinsamen Spalte in beiden Tabellen.
Nach der Verwendung von UNION entsteht eine "einzelne große Abfrage", die mit Klauseln wie ORDER BY weiter bearbeitet werden kann.
WHERE oder GROUP BY können nicht direkt mit durch UNION kombinierten Tabellen verwendet werden. Um diese Klauseln anzuwenden, ist eine Unterabfrage im FROM-Abschnitt erforderlich. Hier ein Beispiel, wie dies umgesetzt wird:
123456789SELECT id, first_name, last_name FROM ( SELECT employee_id AS id, first_name, last_name FROM employees UNION SELECT contractor_id AS id, first_name, last_name FROM contractors ) AS combined WHERE first_name = 'Jane'
Die Verwendung einer Unterabfrage im FROM-Abschnitt bietet mehr Flexibilität! Es mag anfangs schwierig erscheinen, aber das Beherrschen dieser Technik erleichtert das Schreiben komplexer Abfragen erheblich.
1. Welche Anforderungen müssen Ergebnismengen erfüllen, um mit UNION kombiniert werden zu können?
2. Wie behandelt die UNION-Klausel standardmäßig doppelte Zeilen?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen