Join vs. Sub-Query

Definition:

Ein Join und eine Sub-Query sind zwei Techniken in SQL, die dazu verwendet werden, Daten aus mehreren Tabellen zu kombinieren oder abzurufen.

  1. Join: Ein Join ermöglicht das Verbinden von Zeilen aus zwei oder mehr Tabellen anhand einer gemeinsamen Spalte zwischen ihnen.
  2. Sub-Query: Eine Sub-Query, auch Unterabfrage genannt, ist eine Anfrage, die innerhalb einer anderen SQL-Anfrage eingebettet ist. Eine Sub-Query kann Daten zurückgeben, die dann von der Hauptanfrage verwendet werden.

Beispiel:

Nehmen wir an, wir haben zwei Tabellen: Mitarbeiter und Abteilung.

Tabelle Mitarbeiter:

| MitarbeiterID | Name      | AbteilungsID |
|---------------|-----------|--------------|
| 1             | Müller    | 10           |
| 2             | Schneider | 20           |

Tabelle Abteilung:

| AbteilungsID | Abteilungsname  |
|--------------|-----------------|
| 10           | IT              |
| 20           | Vertrieb        |
  • Join: Möchten wir den Namen des Mitarbeiters zusammen mit dem Namen seiner Abteilung anzeigen, könnten wir einen Join verwenden:
SELECT Mitarbeiter.Name, Abteilung.Abteilungsname
FROM Mitarbeiter
JOIN Abteilung ON Mitarbeiter.AbteilungsID = Abteilung.AbteilungsID;
  • Sub-Query: Wenn wir die Namen der Mitarbeiter anzeigen möchten, die in der IT-Abteilung arbeiten, könnten wir eine Sub-Query verwenden:
SELECT Name
FROM Mitarbeiter
WHERE AbteilungsID = (SELECT AbteilungsID FROM Abteilung WHERE Abteilungsname = 'IT');

Nutzung und Eigenschaften:

  • Ein Join ist in der Regel effizienter als eine Sub-Query, wenn es darum geht, Daten aus mehreren Tabellen zu kombinieren.
  • Eine Sub-Query kann in verschiedenen Teilen einer SQL-Anweisung verwendet werden, nicht nur in der WHERE-Klausel. Sie kann in den SELECT-, FROM- oder WHERE-Klauseln einer Hauptanfrage eingesetzt werden.
  • Während Joins dazu tendieren, horizontale Resultatsets (hinzufügen von Spalten) zu erzeugen, erzeugen Sub-Queries in der Regel vertikale Resultatsets (hinzufügen von Zeilen).

Abschließend lässt sich sagen, dass sowohl Joins als auch Sub-Queries wichtige Werkzeuge in SQL sind. Welche Methode in einem bestimmten Szenario zu verwenden ist, hängt von der spezifischen Anforderung und der Datenstruktur ab.