SQL - UNION vs JOIN: Ein umfassender Leitfaden für Anfänger

Hallo da draußen, angehende SQL-Enthusiasten! Ich freue mich sehr, Ihr Guide auf dieser aufregenden Reise durch die Welt von SQL zu sein. Heute werden wir die Geheimnisse von UNION und JOIN, zwei mächtigen SQL-Operationen, lüften, die zu Beginn vielleicht verwirrend erscheinen mögen, aber很快 werden deine besten Freunde in der Datenmanipulation werden. Also, hole dir eine Tasse Kaffee, setze dich bequem hin, und tauchen wir ein!

SQL - Union vs Join

Grundlagen verstehen

Bevor wir uns den Feinheiten von UNION und JOIN widmen, beginnen wir mit einer einfachen Analogie. Stell dir vor, du organisierst eine Party und hast zwei Gästeliste: eine für deine Freunde und eine für deine Familie. Jetzt hast du zwei Möglichkeiten:

  1. Beide Listen in eine große Liste kombinieren (das ist wie eine UNION)
  2. Herausfinden, welche deiner Freunde auch mit dir verwandt sind (das ist wie ein JOIN)

Interessant, nicht wahr? Lassen Sie uns jede dieser Operationen im Detail erkunden.

Funktion von UNION

Was ist UNION?

UNION ist wie ein Meisterlistenmacher in SQL. Es nimmt zwei oder mehr SELECT-Anweisungen und kombiniert ihre Ergebnisse in einen einzigen Ergebnissebnis. Es ist perfekt, wenn du Daten aus verschiedenen Tabellen mit ähnlicher Struktur zusammenführen möchtest.

UNION in Aktion

Nehmen wir an, wir haben zwei Tabellen: employees_usa und employees_uk. Wir möchten eine Liste aller Mitarbeiter erhalten, unabhängig von ihrem Standort.

SELECT first_name, last_name, country
FROM employees_usa
UNION
SELECT first_name, last_name, country
FROM employees_uk;

Diese Abfrage gibt uns eine kombinierte Liste aller Mitarbeiter aus den Büros der USA und des UK. Cool, oder?

UNION ALL: Der inklusive Cousin

Was ist, wenn wir Dopplungen einschließen möchten? Dann kommt UNION ALL ins Spiel.

SELECT product_name, category
FROM products_2021
UNION ALL
SELECT product_name, category
FROM products_2022;

Diese Abfrage listet alle Produkte aus dem Jahr 2021 und 2022 auf, einschließlich Dopplungen, wenn ein Produkt in beiden Jahren erhältlich war.

Wichtige Punkte zum Merken

  1. UNION entfernt Dopplungen standardmäßig
  2. UNION ALL behält alle Zeilen, einschließlich Dopplungen
  3. Die Anzahl und Reihenfolge der Spalten müssen in allen SELECT-Anweisungen gleich sein
  4. Datentypen der entsprechenden Spalten sollten kompatibel sein

Funktion von JOIN

Was ist JOIN?

Wenn UNION ein Listenmacher ist, ist JOIN wie ein Matchmaker. Es kombiniert Zeilen aus zwei oder mehr Tabellen basierend auf einer verwandten Spalte zwischen ihnen. Es ist perfekt, wenn du Daten abrufen möchtest, die über mehrere Tabellen verteilt sind.

Arten von JOINs

Lassen Sie uns die verschiedenen Arten von JOINs mit einer spaßigen Analogie erklären. Stell dir vor, du bist auf einer Tanzparty:

  1. INNER JOIN: Nur Paare, die beide die gleiche Tanzart kennen
  2. LEFT JOIN: Paart alle Tänzer auf der linken Seite, auch wenn sie keinen Partner haben
  3. RIGHT JOIN: Paart alle Tänzer auf der rechten Seite, auch wenn sie keinen Partner haben
  4. FULL JOIN: Paart alle Tänzer, auch wenn einige alleine tanzen

JOIN in Aktion

Lassen Sie uns sehen, wie diese JOINs in echten SQL-Abfragen funktionieren:

INNER JOIN

SELECT customers.name, orders.order_date
FROM customers
INNER JOIN orders ON customers.id = orders.customer_id;

Diese Abfrage zeigt uns alle Kunden, die Bestellungen aufgegeben haben, zusammen mit ihren Bestelldaten.

LEFT JOIN

SELECT employees.name, departments.dept_name
FROM employees
LEFT JOIN departments ON employees.dept_id = departments.id;

Diese Abfrage listet alle Mitarbeiter auf, auch diejenigen, die keinem Department zugeordnet sind.

RIGHT JOIN

SELECT products.name, categories.category_name
FROM products
RIGHT JOIN categories ON products.category_id = categories.id;

Diese Abfrage zeigt alle Kategorien an, auch diejenigen ohne Produkte.

FULL JOIN

SELECT students.name, courses.course_name
FROM students
FULL JOIN enrollments ON students.id = enrollments.student_id
FULL JOIN courses ON enrollments.course_id = courses.id;

Diese Abfrage listet alle Schüler und alle Kurse auf, auch wenn einige Schüler keine Kurse belegt haben oder einige Kurse keine Schüler haben.

UNION vs JOIN: Der Showdown

Nun, da wir sowohl UNION als auch JOIN erkundet haben, vergleichen wir sie nebeneinander:

Aspekt UNION JOIN
Zweck Kombiniert Zeilen aus ähnlichen Tabellen Kombiniert Spalten aus verwandten Tabellen
Ergebnis Vertikale Kombination (mehr Zeilen) Horizontale Kombination (mehr Spalten)
Tabellenstruktur Muss gleiche Anzahl von Spalten haben Kann unterschiedliche Anzahl von Spalten haben
Duplikathandhabung Entfernt Dopplungen (außer UNION ALL) Behält alle passenden Zeilen
Leistung Im Allgemeinen schneller für große Datensätze Kann langsamer für komplexe Verbindungen sein
Verwendungszweck Kombinieren ähnlicher Daten aus verschiedenen Quellen Abrufen verwandter Daten über Tabellen

Schlussfolgerung: Wahl zwischen UNION und JOIN

Also, wann solltest du UNION und wann JOIN verwenden? Hier ist ein einfaches Faustregel:

  • Verwenden Sie UNION, wenn Sie ähnliche Daten aus verschiedenen Tabellen in eine einzige Liste kombinieren möchten.
  • Verwenden Sie JOIN, wenn Sie verwandte Daten über mehrere Tabellen abrufen möchten.

Denke daran, wie das Wahl der richtigen Werkzeug für eine Aufgabe abhängt, so hängt die Auswahl zwischen UNION und JOIN von deinen spezifischen Datenanforderungen ab. Mit der Übung wirst du eine Intuition für die Verwendung entwickeln, die in verschiedenen Szenarien am besten geeignet ist.

Ich hoffe, dieser Leitfaden hat UNION und JOIN für dich entmystifiziert. Übe weiter, bleibe neugierig, und bevor du es weißt, wirst du durch SQL-Abfragen tanzen wie ein Profi! Frohes Coden!

Credits: Image by storyset