Database
 sql >> Datenbank >  >> RDS >> Database

SQL Union – Ein umfassender Leitfaden zum UNION-Operator

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:
    1. UNION-Syntax
    2. UNION ALL-Syntax
  • Unterschiede zwischen UNION und UNION ALL
  • Beispiele für SQL UNION:
    1. UNION-Operator-Beispiel
    2. UNION ALL-Operatorbeispiel
    3. UNION mit SQL-Aliassen
    4. UNION mit WHERE-Klausel
    5. UNION ALL mit WHERE-Klausel
    6. UNION mit JOINS
    7. 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.