Direkt zum Inhalt springen

T-SQL JOINs verstehen: INNER, LEFT, RIGHT, FULL

Author Image

Attila Krick

07. Feb. 2026

Blog Image

Welche Frage beantwortet dieser Artikel?

Dieser Artikel beantwortet eine konkrete Frage: Welchen JOIN-Typ solltest du in T-SQL wann einsetzen, damit Ergebnis und Performance stimmen?

Stand: 2026-02
Getestet mit: SQL Server und Azure Data Studio in typischen Reporting- und Auswertungs-Szenarien.

SQL JOIN Arten verständlich erklärt

Warum JOINs zentral sind

Relationale Datenmodelle speichern Informationen verteilt über mehrere Tabellen. JOINs verbinden diese Tabellen korrekt und sind die Grundlage für belastbare Reports.

Praxisbeispiel: Kunden, Bestellungen, Produkte

Wir arbeiten mit drei Tabellen:

  • Kunden (Kunden)
  • Bestellungen (Bestellungen)
  • Produkte (Produkte)

Tabellenstruktur (vereinfacht)

-- Kunden
KundenID | Name       
---------|------------
1        | Müller GmbH
2        | Schulz AG

-- Bestellungen
BestellID | KundenID | ProduktID | Menge
----------|----------|-----------|------
1001      | 1        | 501       | 2
1002      | 2        | 502       | 1
1003      | 1        | 503       | 5

-- Produkte
ProduktID | Produktname   | Preis
----------|---------------|------
501       | Laptop        | 1200
502       | Monitor       | 300
503       | Maus          | 25

1) INNER JOIN: nur passende Datensätze

Der Standardfall für präzise Trefferlisten:

SELECT K.Name, B.ProduktID
FROM Kunden K
INNER JOIN Bestellungen B ON K.KundenID = B.KundenID;

Wenn du alle Kunden sehen willst, auch ohne Bestellung:

SELECT K.Name, B.ProduktID
FROM Kunden K
LEFT JOIN Bestellungen B ON K.KundenID = B.KundenID;

3) RIGHT JOIN: fachlich oft unklarer als LEFT JOIN

RIGHT JOIN ist das Spiegelbild vom LEFT JOIN, wird in Teams aber seltener genutzt, weil Abfragen schlechter lesbar werden.

SELECT K.Name, B.ProduktID
FROM Kunden K
RIGHT JOIN Bestellungen B ON K.KundenID = B.KundenID;

4) FULL OUTER JOIN: vollständige Differenzanalyse

Nützlich, wenn du Datenlücken oder Inkonsistenzen sichtbar machen willst.

SELECT K.Name, B.ProduktID
FROM Kunden K
FULL OUTER JOIN Bestellungen B ON K.KundenID = B.KundenID;

5) Mehrere Tabellen sauber verknüpfen

SELECT K.Name, P.Produktname, B.Menge
FROM Bestellungen B
JOIN Kunden K ON B.KundenID = K.KundenID
JOIN Produkte P ON B.ProduktID = P.ProduktID;

Das ergibt zum Beispiel:

Name        | Produktname | Menge
------------|-------------|------
Müller GmbH | Laptop      | 2
Schulz AG   | Monitor     | 1
Müller GmbH | Maus        | 5

Performance: belastbare Regeln statt Mythen

Folgende Punkte sind in der Praxis entscheidend:

  • passende Indizes auf Join-Spalten (KundenID, ProduktID)
  • korrekte Datentypen auf beiden Seiten der Join-Bedingung
  • saubere Filterbedingungen, damit früh reduziert wird
  • tatsächlichen Ausführungsplan prüfen statt Annahmen treffen

Wichtig: Eine zusätzliche Zwischentabelle macht eine Abfrage nicht automatisch schneller. Sie ist nur dann sinnvoll, wenn sie fachlich benötigt wird oder den Plan nachweisbar verbessert.

Typische Fehler bei JOINs

  • Join ohne klare Schlüssellogik führt zu Duplikaten.
  • Filter im falschen Abschnitt verändert die Ergebnismenge.
  • Datentypkonvertierungen in der Join-Bedingung kosten Performance.
  • SELECT * macht Analysen und Netzwerkverkehr unnötig teuer.

Weiterführende Inhalte

Fazit

JOINs sind kein reines Syntax-Thema, sondern ein Qualitätsfaktor für korrekte Reports und stabile Performance. Wenn Join-Typ, Schlüssel und Indizes zusammenpassen, werden Abfragen nachvollziehbar und zuverlässig.