Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Union-Klausel | Verschachtelte Unterabfragen
SQL für Fortgeschrittene

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.

Note
Definition

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:

  1. Anzahl und Reihenfolge der Spalten: Alle mit UNION kombinierten Abfragen müssen die gleiche Anzahl an Spalten in der gleichen Reihenfolge haben;

  2. Datentypen: Die Spalten in jeder Abfrage müssen kompatible Datentypen besitzen;

  3. Eindeutige Zeilen: Standardmäßig entfernt UNION doppelte Zeilen. Verwende UNION 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.

Note
Hinweis

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:

123456789
SELECT 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?

question mark

Welche Anforderungen müssen Ergebnismengen erfüllen, um mit UNION kombiniert werden zu können?

Wählen Sie die richtige Antwort aus

question mark

Wie behandelt die UNION-Klausel standardmäßig doppelte Zeilen?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 5

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 2. Kapitel 5
some-alt