Beim Umgang mit Daten in Datenbanken neigen wir oft dazu, die Set-Operatoren in SQL zu verwenden, um Daten gemäß unseren Anforderungen abzurufen, indem wir zwei oder mehr SELECT-Anweisungen kombinieren. In diesem Artikel über SQL UNION werde ich den UNION-Operator besprechen, der zum Abrufen von Daten in der folgenden Reihenfolge verwendet wird:
- Was ist der SQL UNION-Operator?
- Syntax:
- UNION-Syntax
- UNION ALL-Syntax
- Unterschiede zwischen UNION und UNION ALL
- Beispiele für SQL UNION:
- UNION-Operator-Beispiel
- UNION ALL-Operatorbeispiel
- UNION mit SQL-Aliassen
- UNION mit WHERE-Klausel
- UNION ALL mit WHERE-Klausel
- UNION mit JOINS
- UNION ALL mit JOINS
Lass uns anfangen!
Was ist der SQL UNION-Operator?
Wie der Name schon sagt, wird dieser Operator/diese Klausel verwendet, um die Ergebnisse von zwei oder mehr SELECT-Anweisungen zu kombinieren. Hier muss jede innerhalb der UNION-Anweisung verwendete SELECT-Anweisung die gleiche Anzahl von Spalten in der gleichen Reihenfolge haben. Außerdem müssen alle in den SELECT-Anweisungen vorhandenen Spalten ähnliche Datentypen haben.
Die UNION-Klausel gibt nur eindeutige Werte als Ausgabe zurück. Nur für den Fall, dass Sie doppelte Werte wünschen, müssen Sie die UNION ALL-Klausel verwenden.
Fahren Sie mit diesem Artikel über SQL UNION fort und lassen Sie uns die Syntax verstehen.
SQL UNION-Syntax
UNION-Syntax
SELECT Column1, Column2, Column3, ..., ColumnN FROM Table1 UNION SELECT Column1, Column2, Column3, ..., ColumnN FROM Table2;
UNION ALL-Syntax
SELECT Column1, Column2, Column3, ..., ColumnN FROM Table1 UNION ALL SELECT Column1, Column2, Column3, ..., ColumnN FROM Table2;
Lassen Sie uns in diesem Artikel die Unterschiede zwischen UNION und UNION ALL verstehen.
Unterschiede zwischen SQL UNION und UNION ALL
UNION | ALLE VERBINDEN |
Kombiniert zwei oder mehr Ergebnismengen und behält die doppelten Werte nicht bei. | Kombiniert zwei oder mehr Ergebnismengen und behält die doppelten Werte bei. |
Syntax: UNION | Syntax: UNION ALL |
Lassen Sie uns als Nächstes in diesem Artikel über SQL UNION die verschiedenen Möglichkeiten zur Verwendung dieses Operators verstehen.
Beispiele für SQL UNION und UNION ALL
Zum besseren Verständnis werde ich die folgenden Tabellen betrachten, um Ihnen verschiedene Beispiele zu zeigen.
Mitarbeitertabelle
EmpID | Name | EmpAge | Stadt | Postleitzahl | Land |
1 | Emma | 23 | Berlin | 12109 | Deutschland |
2 | Rahul | 26 | Mumbai | 400015 | Indien |
3 | Aayra | 24 | New York | 10014 | USA |
4 | Johannes | 32 | London | E1 7AE | Großbritannien |
5 | Derek | 29 | New York | 10012 | USA |
Projekttabelle
Projekt-ID | Name | Arbeitstage | Stadt | Postleitzahl | Land |
1 | Projekt 1 | 10 | Berlin | 12109 | Deutschland |
2 | Projekt 2 | 7 | Mumbai | 400015 | Indien |
3 | Projekt 3 | 20 | Delhi | 110006 | Indien |
4 | Projekt 4 | 15 | Mumbai | 400015 | Indien |
5 | Projekt 5 | 28 | Berlin | 12109 | Deutschland |
Beginnen wir mit Beispielen.
SQL UNION-Beispiele
UNION-Operatorbeispiel
Schreiben Sie eine Abfrage, um verschiedene Städte aus der Tabelle "Employees and Projects" abzurufen.
SELECT City FROM Employees UNION SELECT City FROM Projects ORDER BY City;
Ausgabe:
Stadt |
Berlin |
Delhi |
London |
Mumbai |
New York |
Beispiel für den UNION ALL-Operator
Schreiben Sie eine Abfrage, um Städte aus der Tabelle "Mitarbeiter und Projekte" abzurufen. Hier müssen doppelte Werte enthalten sein.
SELECT City FROM Employees UNION ALL SELECT City FROM Projects ORDER BY City;
Ausgabe:
Stadt |
Berlin |
Berlin |
Berlin |
Delhi |
London |
Mumbai |
Mumbai
|
Mumbai |
New York |
New York |
Lassen Sie uns als Nächstes in diesem Artikel verstehen, wie die UNION-Klausel mit SQL-Aliassen verwendet wird.
UNION mit SQL-Aliassen
SQL-Aliase werden verwendet, um einer Tabelle oder Spalte einen temporären Namen zu geben. Lassen Sie uns also eine Abfrage schreiben, um alle eindeutigen Mitarbeiter und Projekte aufzulisten.
SELECT 'Employee' AS Type, Name, City, Country FROM Employees UNION SELECT 'Project', Name, City, Country FROM Projects;
Ausgabe:
Typ | Name | Stadt | Land |
Mitarbeiter | Emma | Berlin | Deutschland |
Mitarbeiter | Rahul | Mumbai | Indien |
Mitarbeiter | Aayra | New York | USA |
Mitarbeiter | Johannes | London | Großbritannien |
Mitarbeiter | Derek | New York | USA |
Projekt | Projekt 1 | Berlin | Deutschland |
Projekt | Projekt 2 | Mumbai | Indien |
Projekt | Projekt 3 | Delhi | Indien |
Projekt | Projekt 4 | Mumbai | Indien |
Projekt | Projekt 5 | Berlin | Deutschland |
UNION mit WHERE-Klausel
Schreiben Sie eine Abfrage, um die verschiedenen indischen Städte und ihre Postleitzahlen sowohl aus der Tabelle "Mitarbeiter" als auch aus der Tabelle "Projekte" abzurufen.
SELECT City, PostalCode, Country FROM Employees WHERE Country='India' UNION SELECT City, PostalCode, Country FROM Projects WHERE Country='India' ORDER BY City;
Ausgabe:
Stadt | Postleitzahl | Land |
Delhi | 110006 | Indien |
Mumbai | 400015 | Indien |
UNION ALL mit WHERE-Klausel
Schreiben Sie eine Abfrage, um indische Städte und ihre Postleitzahlen sowohl aus der Tabelle "Mitarbeiter" als auch aus der Tabelle "Projekte" abzurufen, wo doppelte Werte zulässig sind
SELECT City, PostalCode, Country FROM Employees WHERE Country='India' UNION ALL SELECT City, PostalCode, Country FROM Projects WHERE Country='India' ORDER BY City;
Ausgabe:
Stadt | Postleitzahl | Land |
Delhi | 110006 | Indien |
Mumbai | 400015 | Indien |
Mumbai | 400015 | Indien |
Mumbai | 400015 | Indien |
Lassen Sie uns in diesem Artikel weitermachen, wie die Klauseln UNION und UNION ALL mit JOINS verwendet werden. JOINS in SQL sind Befehle, die verwendet werden, um Zeilen aus zwei oder mehr Tabellen zu kombinieren, basierend auf einer verwandten Spalte zwischen diesen Tabellen.
UNION mit JOINS
Der SQL UNION-Operator kann mit SQL JOINS verwendet werden, um Daten aus zwei verschiedenen Tabellen abzurufen. Ich werde die folgende Tabelle zusammen mit der Employees-Tabelle für das Beispiel betrachten.
ProjectDetails-Tabelle
PID | Arbeitstage | EmpID | Kosten für Projekt |
11 | 12 | 4 | 20000 |
22 | 16 | 3 | 35000 |
33 | 30 | 1 | 60000 |
44 | 25 | 3 | 45000 |
55 | 21 | 1 | 50000 |
SELECT EmpID, Name, CostforProject FROM Employees LEFT JOIN ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID UNION SELECT EmpID, Name, CostforProject FROM Employees RIGHT JOIN ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID;
Ausgabe:
EmpID | Name | Kosten für Projekt |
1 | Emma | 60000 |
1 | Emma | 50000 |
2 | Rahul | NULL |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
4 | Johannes | 20000 |
5 | Derek | NULL |
UNION ALL mit JOINS
Schreiben Sie eine Abfrage zum Abrufen von EmpID, Name und CostforProject aus der Employees- und ProjectDetails-Tabelle, in der doppelte Werte zulässig sind.
SELECT EmpID, Name, CostforProject FROM Employees LEFT JOIN ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID UNION ALL SELECT EmpID, Name, CostforProject FROM Employees RIGHT JOIN ProjectDetails ON Employees.EmpID = ProjectDetails.EmpID;
Ausgabe:
EmpID | Name | Kosten für Projekt |
1 | Emma | 60000 |
1 | Emma | 50000 |
2 | Rahul | NULL |
3 | Aayra | 35000 |
3 | Aayra | 45000 |
4 | Johannes | 20000 |
5 | Derek | NULL |
4 | Johannes | 20000 |
3 | Aayra | 35000 |
1 | Emma | 60000 |
3 | Aayra | 35000 |
1 | Emma | 50000 |
Damit komme ich zum Ende dieses Artikels über SQL UNION. Ich hoffe, Ihnen hat das Lesen dieses Artikels über SQL UNION gefallen. Wir haben die verschiedenen Möglichkeiten gesehen, die UNION- und UNION ALL-Befehle zu verwenden, um Ihnen beim Schreiben von Abfragen zu helfen. Wenn Sie mehr über MySQL erfahren und diese relationale Open-Source-Datenbank kennenlernen möchten, dann sehen Sie sich unseren MySQL-DBA an Zertifizierungsschulung Dazu gehören von einem Kursleiter geleitete Live-Schulungen und reale Projekterfahrung. Dieses Training wird Ihnen dabei helfen, MySQL gründlich zu verstehen und das Thema zu beherrschen.
Haben Sie eine Frage an uns? Bitte erwähnen Sie es im Kommentarbereich von „SQL UNION“ und ich werde mich bei Ihnen melden.