Direkt zum Inhalt
Urkunden
FunktionenAusdrückeSchlüsselwörterAussagenKlauseln

MySQL UNION ALL-Klausel

Die `UNION ALL`-Klausel in MySQL wird verwendet, um die Ergebnisse von zwei oder mehr `SELECT`-Anweisungen zu kombinieren. Im Gegensatz zu `UNION` werden doppelte Zeilen in die endgültige Ergebnismenge aufgenommen.

Verwendung

Die "UNION ALL"-Klausel wird verwendet, wenn du Ergebnisse aus mehreren Abfragen kombinieren musst, ohne doppelte Einträge zu entfernen. Sie ist besonders nützlich für die Aggregation von Datensätzen, bei denen Duplikate sinnvoll sind und erhalten werden sollten.

SELECT column1, column2, ...
FROM table1
UNION ALL
SELECT column1, column2, ...
FROM table2;

In dieser Syntax führt `UNION ALL` die Ergebnisse der beiden `SELECT`-Anweisungen zusammen, einschließlich aller doppelten Zeilen.

Beispiele

1. Basic UNION ALL

SELECT name FROM students
UNION ALL
SELECT name FROM alumni;

In diesem Beispiel werden die Namen aus den Tabellen "Schüler" und "Ehemalige" kombiniert, einschließlich der Duplikate, wenn ein Name in beiden Tabellen vorkommt.

2. UNION ALL mit verschiedenen Spalten

SELECT id, name FROM employees
UNION ALL
SELECT employee_id, full_name FROM contractors;

In diesem Fall werden die Spalten "ID" und "Name" aus der Spalte "Mitarbeiter" mit den Spalten "Mitarbeiter-ID" und "Vollständiger Name" aus der Spalte "Vertragspartner" zusammengeführt. Beide Abfragen müssen die gleiche Anzahl von Spalten in der gleichen Reihenfolge haben, und ihre Datentypen sollten kompatibel sein, um Fehler zu vermeiden.

3. UNION ALL mit Bedingungen verwenden

SELECT product_id, description FROM products WHERE category = 'Electronics'
UNION ALL
SELECT product_id, description FROM discontinued_products WHERE category = 'Electronics';

In diesem Beispiel werden Produkte und Auslaufprodukte innerhalb der Kategorie "Elektronik" kombiniert, wobei alle Duplikate erhalten bleiben.

4. UNION ALL mit ORDER BY verwenden

SELECT id, name FROM employees
UNION ALL
SELECT employee_id, full_name FROM contractors
ORDER BY name;

In diesem Beispiel wird die Anwendung von `ORDER BY` auf die endgültige Ergebnismenge demonstriert, um sicherzustellen, dass die kombinierten Ergebnisse nach Namen sortiert sind.

Tipps und bewährte Praktiken

  • Achte auf die Kompatibilität der Spalten. Alle "SELECT"-Anweisungen müssen die gleiche Anzahl von Spalten mit kompatiblen Datentypen haben, um Fehler zu vermeiden.
  • Bewahre sinnvolle Duplikate auf. Verwende `UNION ALL`, wenn doppelte Zeilen für deine Analysen oder Berichte von Vorteil sind.
  • Optimiere die Abfrageleistung. Sei dir bewusst, dass die Verwendung von "UNION ALL" bei großen Datensätzen die Leistung beeinträchtigen kann; erwäge, kritische Spalten zu indizieren. Nutze die "EXPLAIN"-Anweisung, um den Abfrageplan auf Optimierungsmöglichkeiten zu analysieren.
  • Verwende eine eindeutige Reihenfolge. Wenn es auf die Reihenfolge ankommt, wende die Option `ORDER BY` auf die endgültige Ergebnismenge an, nicht auf einzelne Abfragen innerhalb der `UNION ALL`.
  • Fehlerbehandlung. Stelle sicher, dass die Spalten in allen SELECT-Anweisungen die gleiche Anzahl und kompatible Datentypen haben, um Laufzeitfehler zu vermeiden.

SQL Upskilling für Einsteiger

Erwerbe die SQL-Kenntnisse, um mit deinen Daten zu interagieren und sie abzufragen.
Kostenloses Lernen beginnen