Union-Klausel
Wir haben das Interesse eines Kunden geweckt, der SQL-Abfragen benötigt. Bevor wir uns mit JOINs beschäftigen, lernen wir die UNION-Klausel kennen, die unerlässlich ist, um mehrere Tabellen zu kombinieren.
Hier sind einige wichtige Punkte zur Verwendung von UNION:
-
Anzahl und Reihenfolge der Spalten: Alle Abfragen, die mit
UNIONkombiniert werden, müssen die gleiche Anzahl an Spalten in derselben Reihenfolge haben; -
Datentypen: Die Spalten in jeder Abfrage müssen kompatible Datentypen aufweisen;
-
Eindeutige Zeilen: Standardmäßig entfernt
UNIONdoppelte Zeilen. Verwenden SieUNION ALL, wenn Sie Duplikate beibehalten möchten.
Um das korrekte Kombinieren von Tabellen mit der UNION-Klausel besser zu verstehen, wurde eine zusätzliche Tabelle eingeführt, die Informationen über contractors enthält.
Es sind nur wenige Informationen vorhanden: first_name, last_name und email.
Es ist erkennbar, dass diese Tabelle Ähnlichkeiten mit der Tabelle employees aufweist. Mit der UNION-Klausel lassen sich diese beiden Tabellen zusammenführen, um beispielsweise eine Liste aller Vor- und Nachnamen von Mitarbeitern und Auftragnehmern 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
Analyse der Vorgänge:
Es gibt zwei Abfragen, die jeweils drei Spalten mit identischen Datentypen zurückgeben. Angezeigt werden sollen die Id, first_name und last_name aller Personen im Unternehmen. Die Spalte Id wurde umbenannt, sodass beide Abfragen identische Spaltennamen besitzen.
Anschließend wird mit UNION das Ergebnis beider Abfragen zusammengeführt, wobei Duplikate entfernt werden (in diesem Fall sind keine vorhanden).
Abschließend erfolgt die Sortierung der Ergebnisse nach Id mittels ORDER BY.
Hinweis
Sortiert wird nach
Id, einer gemeinsamen Spalte beider Tabellen.
Nach Anwendung von UNION entsteht eine "einzelne große Abfrage", die sich mit weiteren Klauseln wie ORDER BY weiterverarbeiten lässt.
WHERE oder GROUP BY können nicht direkt mit Tabellen verwendet werden, die durch UNION kombiniert wurden. Um diese Klauseln anzuwenden, muss eine Unterabfrage im FROM-Abschnitt genutzt werden. 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. Dies kann anfangs komplex erscheinen, aber das Beherrschen dieser Technik erleichtert das Schreiben anspruchsvoller Abfragen erheblich.
1. Welche Spalten sind erforderlich, wenn die UNION-Klausel in SQL verwendet wird?
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
Can you explain the difference between UNION and UNION ALL?
How do I know when to use a subquery with UNION?
Can you show more examples of using UNION with different tables?
Großartig!
Completion Rate verbessert auf 4
Union-Klausel
Swipe um das Menü anzuzeigen
Wir haben das Interesse eines Kunden geweckt, der SQL-Abfragen benötigt. Bevor wir uns mit JOINs beschäftigen, lernen wir die UNION-Klausel kennen, die unerlässlich ist, um mehrere Tabellen zu kombinieren.
Hier sind einige wichtige Punkte zur Verwendung von UNION:
-
Anzahl und Reihenfolge der Spalten: Alle Abfragen, die mit
UNIONkombiniert werden, müssen die gleiche Anzahl an Spalten in derselben Reihenfolge haben; -
Datentypen: Die Spalten in jeder Abfrage müssen kompatible Datentypen aufweisen;
-
Eindeutige Zeilen: Standardmäßig entfernt
UNIONdoppelte Zeilen. Verwenden SieUNION ALL, wenn Sie Duplikate beibehalten möchten.
Um das korrekte Kombinieren von Tabellen mit der UNION-Klausel besser zu verstehen, wurde eine zusätzliche Tabelle eingeführt, die Informationen über contractors enthält.
Es sind nur wenige Informationen vorhanden: first_name, last_name und email.
Es ist erkennbar, dass diese Tabelle Ähnlichkeiten mit der Tabelle employees aufweist. Mit der UNION-Klausel lassen sich diese beiden Tabellen zusammenführen, um beispielsweise eine Liste aller Vor- und Nachnamen von Mitarbeitern und Auftragnehmern 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
Analyse der Vorgänge:
Es gibt zwei Abfragen, die jeweils drei Spalten mit identischen Datentypen zurückgeben. Angezeigt werden sollen die Id, first_name und last_name aller Personen im Unternehmen. Die Spalte Id wurde umbenannt, sodass beide Abfragen identische Spaltennamen besitzen.
Anschließend wird mit UNION das Ergebnis beider Abfragen zusammengeführt, wobei Duplikate entfernt werden (in diesem Fall sind keine vorhanden).
Abschließend erfolgt die Sortierung der Ergebnisse nach Id mittels ORDER BY.
Hinweis
Sortiert wird nach
Id, einer gemeinsamen Spalte beider Tabellen.
Nach Anwendung von UNION entsteht eine "einzelne große Abfrage", die sich mit weiteren Klauseln wie ORDER BY weiterverarbeiten lässt.
WHERE oder GROUP BY können nicht direkt mit Tabellen verwendet werden, die durch UNION kombiniert wurden. Um diese Klauseln anzuwenden, muss eine Unterabfrage im FROM-Abschnitt genutzt werden. 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. Dies kann anfangs komplex erscheinen, aber das Beherrschen dieser Technik erleichtert das Schreiben anspruchsvoller Abfragen erheblich.
1. Welche Spalten sind erforderlich, wenn die UNION-Klausel in SQL verwendet wird?
2. Wie behandelt die UNION-Klausel standardmäßig doppelte Zeilen?
Danke für Ihr Feedback!