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 mit
UNION
kombinierten Abfragen müssen die gleiche Anzahl an Spalten in derselben Reihenfolge haben; -
Datentypen: Die Spalten in jeder Abfrage müssen kompatible Datentypen besitzen;
-
Eindeutige Zeilen: Standardmäßig entfernt
UNION
doppelte Zeilen. Verwenden SieUNION ALL
, wenn Sie Duplikate beibehalten möchten.
Um besser zu verstehen, wie Tabellen korrekt mit der UNION
-Klausel kombiniert werden, habe ich eine zusätzliche Tabelle eingeführt, die Informationen über contractors
enthält.
Hier gibt es nicht viele Informationen, nur first_name
, last_name
und email
.
Sie sehen, dass diese Tabelle Ähnlichkeiten mit der Tabelle employees
aufweist. Mit der UNION
-Klausel können wir diese beiden Tabellen zusammenführen, um beispielsweise eine Liste aller Vor- und Nachnamen von Mitarbeitern und Auftragnehmern im Unternehmen anzuzeigen.
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
Analysieren wir, was hier passiert:
Wir haben zwei Abfragen, die jeweils drei Spalten mit denselben Datentypen zurückgeben. Wir möchten die Id
, first_name
und last_name
aller Personen im Unternehmen sehen. Außerdem haben wir die Spalte Id
umbenannt, sodass beide Abfragen identische Spaltennamen besitzen.
Anschließend verwenden wir UNION
, um die Ergebnisse dieser Abfragen zusammenzuführen und Duplikate zu entfernen (obwohl es hier keine gibt).
Abschließend sortieren wir die Ergebnisse mit Id
nach ORDER BY
.
Hinweis
Wir sortieren nach
Id
, einer gemeinsamen Spalte in beiden Tabellen.
Nach der Verwendung von UNION
erhalten wir eine "einzelne große Abfrage", die wir mit Klauseln wie ORDER BY
weiterverarbeiten 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 eine Unterabfrage im FROM
-Abschnitt verwenden. Hier ist ein Beispiel, wie das funktioniert:
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 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
Awesome!
Completion rate improved to 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 mit
UNION
kombinierten Abfragen müssen die gleiche Anzahl an Spalten in derselben Reihenfolge haben; -
Datentypen: Die Spalten in jeder Abfrage müssen kompatible Datentypen besitzen;
-
Eindeutige Zeilen: Standardmäßig entfernt
UNION
doppelte Zeilen. Verwenden SieUNION ALL
, wenn Sie Duplikate beibehalten möchten.
Um besser zu verstehen, wie Tabellen korrekt mit der UNION
-Klausel kombiniert werden, habe ich eine zusätzliche Tabelle eingeführt, die Informationen über contractors
enthält.
Hier gibt es nicht viele Informationen, nur first_name
, last_name
und email
.
Sie sehen, dass diese Tabelle Ähnlichkeiten mit der Tabelle employees
aufweist. Mit der UNION
-Klausel können wir diese beiden Tabellen zusammenführen, um beispielsweise eine Liste aller Vor- und Nachnamen von Mitarbeitern und Auftragnehmern im Unternehmen anzuzeigen.
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
Analysieren wir, was hier passiert:
Wir haben zwei Abfragen, die jeweils drei Spalten mit denselben Datentypen zurückgeben. Wir möchten die Id
, first_name
und last_name
aller Personen im Unternehmen sehen. Außerdem haben wir die Spalte Id
umbenannt, sodass beide Abfragen identische Spaltennamen besitzen.
Anschließend verwenden wir UNION
, um die Ergebnisse dieser Abfragen zusammenzuführen und Duplikate zu entfernen (obwohl es hier keine gibt).
Abschließend sortieren wir die Ergebnisse mit Id
nach ORDER BY
.
Hinweis
Wir sortieren nach
Id
, einer gemeinsamen Spalte in beiden Tabellen.
Nach der Verwendung von UNION
erhalten wir eine "einzelne große Abfrage", die wir mit Klauseln wie ORDER BY
weiterverarbeiten 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 eine Unterabfrage im FROM
-Abschnitt verwenden. Hier ist ein Beispiel, wie das funktioniert:
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 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!