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

Kursinhalt

Fortgeschrittene SQL

Fortgeschrittene SQL

1. Gruppierung
2. Verschachtelte Unterabfragen
3. Tabellen Verbinden
4. DDL und DML in SQL

book
Union-Klausel

Wir haben die Aufmerksamkeit eines Kunden erregt, der SQL-Abfragen benötigt. Bevor wir uns in JOINs vertiefen, lernen wir die UNION-Klausel kennen, die entscheidend dafür ist, mehrere Tabellen zu kombinieren.

Hier sind einige wichtige Punkte zur Verwendung von UNION:

  1. Spaltenanzahl und Reihenfolge: Alle mit UNION kombinierten Abfragen müssen die gleiche Anzahl von Spalten in gleicher Reihenfolge haben;

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

  3. Eindeutige Zeilen: Standardmäßig entfernt UNION doppelte Zeilen. Verwenden Sie UNION ALL, wenn Sie Duplikate beibehalten möchten.

Zum besseren Verständnis, wie man Tabellen korrekt kombiniert unter Einsatz der UNION-Klausel, habe ich eine zusätzliche Tabelle eingeführt, die Informationen über contractors enthält.

Es gibt hier nicht viele Informationen, nur first_name, last_name und email.

Man erkennt, dass diese Tabelle Ähnlichkeiten mit der employees-Tabelle aufweist. Mithilfe der UNION-Klausel können wir diese beiden Tabellen kombinieren, um beispielsweise eine Liste aller Vornamen und Nachnamen der am Unternehmen beteiligten employees und contractors zu erhalten.

Dazu verwenden wir die UNION-Klausel:

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
copy

Lassen Sie uns Schritt für Schritt durchgehen, was passiert:

Wir haben zwei Abfragen, die jeweils drei Spalten mit gleichen Datentypen zurückgeben. Wir möchten den Id, first_name und last_name von allen im Unternehmen sehen. Wir haben die Id-Spalte auch umbenannt, sodass beide Abfragen gleiche Spaltennamen haben.

Anschließend verwenden wir UNION, um die Ergebnisse dieser Abfragen zu kombinieren und Duplikate zu entfernen (obwohl hier keine vorhanden sind).

Zum Schluss sortieren wir die Ergebnisse mittels Id nach ORDER BY.

Hinweis

Wir sortieren nach Id, was eine gemeinsame Spalte in beiden Tabellen ist.

Nach der Verwendung von UNION erhalten wir eine "einzelne große Abfrage", die wir weiter mit Klauseln wie ORDER BY bearbeiten können.

Wir können WHERE oder GROUP BY nicht direkt mit Tabellen verwenden, die mit UNION kombiniert wurden. Um diese Klauseln anzuwenden, müssen wir einen subquery im FROM-Abschnitt verwenden. Hier ist ein Beispiel, wie es gemacht 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'
copy

Die Verwendung eines subquery im FROM-Abschnitt gibt uns mehr Flexibilität! Es mag anfangs schwierig erscheinen, aber wenn man dies beherrscht, wird das Schreiben komplexer Abfragen viel einfacher.

1. Welche Spalten sind erforderlich, wenn Sie die UNION-Klausel in SQL verwenden?

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

Welche Spalten sind erforderlich, wenn Sie die `UNION`-Klausel in SQL verwenden?

Welche Spalten sind erforderlich, wenn Sie die UNION-Klausel in SQL verwenden?

Wählen Sie die richtige Antwort aus

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

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
We're sorry to hear that something went wrong. What happened?
some-alt