T-SQL JOINs für Einsteiger: So verknüpfst du deine Daten richtig

Du willst endlich verstehen, was INNER JOIN, LEFT JOIN & Co. in T-SQL wirklich machen? Perfekt! In diesem Blogbeitrag nehmen wir dich Schritt für Schritt mit in die Welt der Tabellenverknüpfungen. Zielgruppe sind Business-Analysten und Power-User, die mit Azure Data Studio arbeiten und häufig mit relationalen Datenmodellen zu tun haben.

Was sind JOINs und warum brauchst du sie?

In relationalen Datenbanken wie SQL Server werden Daten logisch getrennt in Tabellen gespeichert. JOINs sind die Brücken zwischen diesen Tabellen. Du kannst damit z. B. Kundendaten mit den zugehörigen Bestellungen verknüpfen oder für jedes Produkt anzeigen, wie oft es bestellt wurde.

Statt alles in eine riesige Tabelle zu stopfen, bleibst du flexibel und effizient – JOINs holen sich genau die Infos, die du brauchst.

Unser Praxisbeispiel: Kunden, Bestellungen und Produkte

Wir arbeiten mit drei Tabellen:

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

Tabellenstruktur (vereinfacht)

 1-- Kunden
 2KundenID | Name       
 3---------|------------
 41        | Müller GmbH
 52        | Schulz AG
 6
 7-- Bestellungen
 8BestellID | KundenID | ProduktID | Menge
 9----------|----------|-----------|------
101001      | 1        | 501       | 2
111002      | 2        | 502       | 1
121003      | 1        | 503       | 5
13
14-- Produkte
15ProduktID | Produktname   | Preis
16----------|---------------|------
17501       | Laptop        | 1200
18502       | Monitor       | 300
19503       | Maus          | 25

Tabellenbeziehungen erklärt

  • KundenID in Bestellungen ist ein Fremdschlüssel, der auf Kunden zeigt.
  • ProduktID in Bestellungen zeigt auf Produkte.

Damit ist klar: Eine Bestellung ist einem Kunden zugeordnet und enthält ein Produkt.

JOIN-Typen im Überblick (mit Visualisierung)

Hier siehst du die wichtigsten JOINs als vereinfachte Darstellung (Legende: ⬤ = Ergebnismenge):

INNER JOIN – Nur was zusammenpasst

Zeigt nur Zeilen, bei denen in beiden Tabellen ein passender Eintrag existiert.

1Kunden           Bestellungen
2  □                 □
3    \             /
4     ⬤  INNER JOIN
1SELECT K.Name, B.ProduktID
2FROM Kunden K
3INNER JOIN Bestellungen B ON K.KundenID = B.KundenID;

LEFT JOIN – Alle Kunden, auch ohne Bestellung

Nimm alle Kunden, und falls Bestellungen existieren, zeig sie.

1Kunden           Bestellungen
2  □                 □
3   |\             /
4   |⬤ LEFT JOIN
1SELECT K.Name, B.ProduktID
2FROM Kunden K
3LEFT JOIN Bestellungen B ON K.KundenID = B.KundenID;

RIGHT JOIN – Alle Bestellungen, auch ohne Kunden (selten sinnvoll)

Gegenteil von LEFT JOIN. Wird selten verwendet, weil “verwaiste Bestellungen” meist Datenfehler sind.

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

FULL OUTER JOIN – Alles zeigen, was da ist

Nimm alles aus beiden Tabellen, egal ob passend oder nicht.

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

BONUS: Drei Tabellen verknüpfen

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

Das ergibt z. B.:

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

Performance Tipp

Wenn zwischen 2 Tabellen eine Beziehung eingerichtet wurde sind diese Join Abfragen schneller. Daher nie abkürzen sondern auch dazwischen liegende Tabellen mit in die Verknüpfung einbeziehen. Auch wenn aus dieser mittleren Tabelle keine Daten benötigt werden ist die Abfrage wesentlich schneller.

Zusammenfassung

  • JOINs sind essenziell, um Daten aus mehreren Tabellen sinnvoll zu kombinieren.
  • INNER JOIN zeigt nur Treffer, LEFT JOIN nimmt alles links mit, FULL OUTER JOIN zeigt alles.
  • Für Business-Analysten und Power-User in Azure Data Studio ist das Verständnis von JOINs entscheidend für gute Reports.

Neugierig auf mehr?

Du willst noch tiefer in TSQL einsteigen oder JOINs anhand deiner eigenen Datenbankstruktur trainieren? Dann melde dich gerne für ein individuelles Seminar oder eine Beratungssession mit mir! Auch freie Softwareentwickler profitieren von strukturierten SQL-Trainings für ihre Kundenprojekte.

Jetzt Kontakt aufnehmen