Auswählen und Kombinieren von Spalten aus zwei SQL-Tabellen

Beim Arbeiten mit Datenbanken begegnet man häufig Situationen, in denen man Daten aus mehreren Tabellen abrufen muss. Ein solches Szenario tritt auf, wenn man zwei Tabellen mit einer gemeinsamen Spalte hat. In diesem Blogbeitrag werden wir untersuchen, wie man eine bestimmte Spalte, ColumnA, aus zwei verschiedenen Tabellen—Table1 und Table2—auswählt und als ein einzelnes Ergebnis-Set zurückgibt.

Das Problem

Angenommen, Sie haben zwei Tabellen in Ihrer Datenbank:

  • Table1 enthält eine Spalte mit dem Namen ColumnA mit Werten:

    • a
    • b
    • c
  • Table2 enthält ebenfalls eine Spalte mit dem Namen ColumnA mit Werten:

    • d
    • e
    • f

Ihr Ziel ist es, alle Instanzen von ColumnA aus beiden Tabellen in eine einzelne Spalte im Ergebnis-Set zu extrahieren. Das bedeutet, dass die Ausgabe folgendes anzeigen soll:

a
b
c
d
e
f

Die Lösung

Um dies zu erreichen, können wir eine SQL-Abfrage mit dem UNION-Operator verwenden. Der UNION-Operator ermöglicht es uns, die Ergebnisse von zwei oder mehr SELECT-Anweisungen in einem einzigen Ergebnis-Set zu kombinieren.

SQL-Abfrage-Beispiel

Hier ist die SQL-Abfrage, die diese Aufgabe erfüllt:

SELECT ColumnA FROM Table1 
UNION 
SELECT ColumnA FROM Table2 
ORDER BY 1;

Aufschlüsselung der Abfrage

  1. Spaltenauswahl:

    • Wir beginnen mit SELECT ColumnA FROM Table1, um alle Einträge aus ColumnA in Table1 abzurufen.
    • Der nächste Teil, SELECT ColumnA FROM Table2, macht dasselbe für Table2.
  2. Kombinieren der Ergebnisse:

    • Der UNION-Operator verbindet die Ergebnis-Sets beider SELECT-Anweisungen.
    • Beachten Sie, dass der UNION-Operator standardmäßig doppelte Werte entfernt; falls es also Überschneidungen in den Werten von ColumnA zwischen den beiden Tabellen gibt, erscheinen diese nur einmal in der endgültigen Ausgabe.
  3. Sortierung der Ergebnisse:

    • Die Klausel ORDER BY 1 sortiert die endgültige Ausgabe nach der ersten Spalte, die in diesem Fall ColumnA ist.

Wann man UNION ALL verwenden sollte

Wenn Sie sicher sind, dass die Werte in ColumnA aus Table1 und Table2** niemals überlappen, sollten Sie UNION ALLanstelle vonUNION` verwenden. Diese Option vermeidet den Aufwand, nach Duplikaten zu suchen, und kann die Leistung verbessern:

SELECT ColumnA FROM Table1 
UNION ALL 
SELECT ColumnA FROM Table2 
ORDER BY 1;

Zusammenfassung

Zusammenfassend lässt sich sagen, dass die Kombination von Daten aus mehreren Tabellen in SQL effizient mit dem UNION-Operator gehandhabt werden kann. Diese Praxis vereinfacht nicht nur den Datenabruf, sondern macht auch Ihre Datenbankabfragen robuster und flexibler.

Jetzt können Sie ganz einfach Spalten aus verschiedenen Tabellen extrahieren und zusammenführen, wodurch Sie Ihre Fähigkeit zur Verwaltung und Analyse Ihrer Daten effektiv verbessern!