SQL JOIN Visualizer & Tabellen-Merger-Simulator

SQL JOIN Visualizer & Tabellen-Merger-Simulator

SQL JOINs gehören zu den wichtigsten, aber oft auch verwirrendsten Grundlagen relationaler Datenbanken. Sobald mehrere Tabellen, doppelte Treffer oder fehlende Beziehungen ins Spiel kommen, verliert man im reinen SQL-Code schnell den Überblick.

sql-join-visualizer-web-q84-1000x600

Der SQL JOIN Visualizer macht diese Zusammenhänge sichtbar: Sie erkennen direkt, welche Datensätze verbunden werden, welche Zeilen im Ergebnis erhalten bleiben und wo NULL-Werte entstehen. So wird aus einer abstrakten Abfrage ein nachvollziehbarer Ablauf, der sich leichter verstehen, prüfen und dauerhaft merken lässt.

Interaktives SQL-Lern- und Planungstool

SQL JOIN Visualizer & Tabellen-Merger-Simulator

Sehen Sie unmittelbar, wie INNER JOIN, LEFT JOIN, RIGHT JOIN und FULL OUTER JOIN Datensätze miteinander verbinden. Bearbeiten Sie zwei Beispieltabellen, wählen Sie die Join-Spalten aus und verfolgen Sie visuell, welche Zeilen übernommen, mehrfach ausgegeben oder mit NULL-Werten ergänzt werden.

  • SQL-JOINs anhand zweier editierbarer Tabellen verstehen
  • INNER, LEFT, RIGHT und FULL OUTER JOIN direkt vergleichen
  • Mehrfachtreffer, fehlende Beziehungen und NULL-Werte erkennen
  • Verbindungen zwischen Tabellenzeilen als SVG-Grafik anzeigen
  • Passenden SQL-Code zum gewählten Join erzeugen
  • Die Verarbeitung im Schritt-für-Schritt-Modus nachvollziehen

So funktioniert der SQL JOIN Simulator

  1. Wählen Sie aus, ob ein INNER JOIN, LEFT JOIN, RIGHT JOIN oder FULL OUTER JOIN simuliert werden soll.
  2. Bearbeiten Sie bei Bedarf die Beispielwerte in der linken und rechten Tabelle.
  3. Legen Sie fest, welche Spalte der linken Tabelle mit welcher Spalte der rechten Tabelle verglichen wird.
  4. Starten Sie die Simulation. Das Tool markiert passende Zeilen, zeichnet ihre Verbindungen und aktualisiert Ergebnistabelle und SQL-Code.
  5. Nutzen Sie den Vergleichs- oder Lernmodus, um die Unterschiede der JOIN-Arten Schritt für Schritt zu erkennen.

Die voreingetragenen Daten bilden ein vollständiges Beispiel aus einer Kundentabelle und einer Bestelltabelle. Dadurch bleibt der Zweck des Tools auch ohne aktive Berechnung verständlich.

Simulator

JOIN-Art, Tabellen und Verknüpfung festlegen

Im Beispiel werden Kunden mit ihren Bestellungen verbunden. Anna besitzt zwei Bestellungen, Carla eine Bestellung. Für Ben und Dario gibt es keine Bestellung. Eine Bestellung verweist auf die nicht vorhandene Kunden-ID 5.

1. JOIN-Art auswählen
2. Tabellennamen und JOIN-Spalten festlegen

Beispiel: kunden

Beispiel: bestellungen

Ein NULL-Wert ist kein leerer Text und stimmt bei einem normalen Gleichheitsvergleich nicht mit einem anderen NULL-Wert überein.

3. Beispieldaten bearbeiten

Linke Tabelle: kunden

Kundendaten mit vier ausgefüllten und einer freien Beispielzeile

Rechte Tabelle: bestellungen

Bestelldaten mit vier ausgefüllten und einer freien Beispielzeile

Beim Tauschen wechseln linke und rechte Tabelle ihre Position. Dadurch lässt sich besonders der Unterschied zwischen LEFT JOIN und RIGHT JOIN nachvollziehen.

Angezeigt wird das statische INNER-JOIN-Beispiel über kunden.kunden_id = bestellungen.kunden_id.

Visualisierung

Welche Tabellenzeilen sind miteinander verbunden?

Die Linien zeigen passende Werte der ausgewählten JOIN-Spalten. Eine Zeile kann mit mehreren Zeilen der anderen Tabelle verbunden sein. Dadurch entstehen im Ergebnis mehrere Datensätze.

Visuelle Verbindung zwischen Kunden und Bestellungen Die Kunden-ID 1 von Anna ist mit zwei Bestellungen verbunden. Die Kunden-ID 3 von Carla ist mit einer Bestellung verbunden. Ben und Dario besitzen keine passende Bestellung. Die Bestellung mit Kunden-ID 5 besitzt keinen passenden Kunden. kunden bestellungen 1 · Anna Berlin 2 · Ben Hamburg 3 · Carla Köln 4 · Dario München 1001 · Kunden-ID 1 Laptop 1002 · Kunden-ID 1 Maus 1003 · Kunden-ID 3 Monitor 1004 · Kunden-ID 5 Tastatur 3 passende Zeilenverbindungen Anna erzeugt wegen zwei Bestellungen zwei Ergebniszeilen.
Datensatz mit mindestens einer Übereinstimmung
Datensatz ohne Übereinstimmung
Rechter Datensatz ohne passenden linken Datensatz

Auswertung

INNER-JOIN-Ergebnis des statischen Beispiels

Beim INNER JOIN erscheinen nur Zeilen, deren ausgewählte Schlüsselwerte in beiden Tabellen vorhanden sind. Nicht verbundene Kunden und die Bestellung mit Kunden-ID 5 werden nicht ausgegeben.

Gewählter JOIN
INNER JOIN
JOIN-Bedingung
kunden.kunden_id = bestellungen.kunden_id
Ausgefüllte linke Zeilen
4
Ausgefüllte rechte Zeilen
4
Passende Zeilenpaare
3
Ergebniszeilen
3

Erklärung in Klartext

Der INNER JOIN übernimmt drei passende Kombinationen. Anna wird zweimal ausgegeben, weil zu ihrer Kunden-ID zwei Bestellungen existieren. Carla wird einmal ausgegeben. Ben, Dario und die Bestellung mit Kunden-ID 5 besitzen kein passendes Gegenstück und entfallen.

Ergebnis von kunden INNER JOIN bestellungen über kunden_id
kunden.kunden_id kunden.name kunden.stadt bestellungen.bestell_id bestellungen.kunden_id bestellungen.produkt
1 Anna Berlin 1001 1 Laptop
1 Anna Berlin 1002 1 Maus
3 Carla Köln 1003 3 Monitor

Passender SQL-Code

SELECT
    kunden.kunden_id,
    kunden.name,
    kunden.stadt,
    bestellungen.bestell_id,
    bestellungen.kunden_id AS bestellung_kunden_id,
    bestellungen.produkt
FROM kunden
INNER JOIN bestellungen
    ON kunden.kunden_id = bestellungen.kunden_id;

Vergleichsansicht

Wie unterscheiden sich die vier JOIN-Arten?

Die folgende Übersicht verwendet dieselben Kundendaten und Bestellungen wie der Simulator. Die Ergebniszahlen zeigen, wie stark sich die JOIN-Art auf die ausgegebenen Zeilen auswirkt.

Vergleich von INNER, LEFT, RIGHT und FULL OUTER JOIN Vier vereinfachte Mengendiagramme zeigen, welche Bereiche der linken und rechten Tabelle von den jeweiligen JOIN-Arten ausgegeben werden. INNER JOIN Nur die Schnittmenge LEFT JOIN Gesamte linke Seite RIGHT JOIN Gesamte rechte Seite FULL OUTER JOIN Beide Seiten vollständig

INNER JOIN

Es erscheinen ausschließlich passende Kombinationen aus beiden Tabellen.

Ergebniszeilen im Beispiel
3
Unverbundene Zeilen
Nicht enthalten

LEFT JOIN

Alle Kunden bleiben erhalten. Fehlende Bestelldaten werden als NULL ausgegeben.

Ergebniszeilen im Beispiel
5
Unverbundene Zeilen
Ben und Dario bleiben erhalten

RIGHT JOIN

Alle Bestellungen bleiben erhalten. Für die Bestellung mit Kunden-ID 5 fehlen Kundendaten.

Ergebniszeilen im Beispiel
4
Unverbundene Zeilen
Bestellung 1004 bleibt erhalten

FULL OUTER JOIN

Alle verbundenen und unverbundenen Datensätze beider Tabellen werden ausgegeben.

Ergebniszeilen im Beispiel
6
Unverbundene Zeilen
Ben, Dario und Bestellung 1004
Direkter Vergleich der SQL-JOIN-Arten
JOIN-Art Passende Datensätze Unverbundene linke Datensätze Unverbundene rechte Datensätze Typischer Einsatz
INNER JOIN Ja Nein Nein Nur vollständig zuordenbare Beziehungen anzeigen
LEFT JOIN Ja Ja Nein Alle Datensätze der Haupttabelle behalten
RIGHT JOIN Ja Nein Ja Alle Datensätze der rechten Tabelle behalten
FULL OUTER JOIN Ja Ja Ja Vollständigen Bestand beider Tabellen gegenüberstellen

Lernmodus

JOIN-Verarbeitung Schritt für Schritt verfolgen

Im Lernmodus wird jede linke Tabellenzeile nacheinander geprüft. Passende Schlüsselwerte werden markiert und anschließend als Ergebniszeilen übernommen.

Schritt 1 von 7
Aktueller Schritt
1 von 7
Geprüfter linker Datensatz
Kunden-ID 1 · Anna
Verglichener Schlüsselwert
1
Gefundene Übereinstimmungen
2

Was geschieht in diesem Schritt?

Die Kunden-ID 1 von Anna wird mit allen Werten der Spalte bestellungen.kunden_id verglichen. Der Wert 1 kommt dort zweimal vor. Deshalb erzeugt der JOIN zwei Ergebniszeilen: eine für den Laptop und eine für die Maus.

  1. Die JOIN-Spalten und die gewählte JOIN-Art werden eingelesen.
  2. Anna mit Kunden-ID 1 findet zwei passende Bestellungen.
  3. Ben mit Kunden-ID 2 findet keine passende Bestellung.
  4. Carla mit Kunden-ID 3 findet eine passende Bestellung.
  5. Dario mit Kunden-ID 4 findet keine passende Bestellung.
  6. Die Bestellung mit Kunden-ID 5 besitzt keinen passenden Kunden.
  7. Die Ergebnismenge wird entsprechend der gewählten JOIN-Art ausgegeben.

Wichtige Regeln für SQL JOINs

JOIN-Spalten müssen vergleichbar sein

Typischerweise wird ein Primärschlüssel mit einem zugehörigen Fremdschlüssel verbunden. Datentyp, Inhalt und Bedeutung der beiden Spalten sollten zueinander passen.

Mehrfachtreffer erzeugen mehrere Zeilen

Passt ein linker Datensatz zu mehreren rechten Datensätzen, wird der linke Datensatz für jede Übereinstimmung erneut in der Ergebnismenge ausgegeben.

NULL ist kein normaler Vergleichswert

Ein Ausdruck wie NULL = NULL ergibt in SQL nicht einfach „wahr“. Für NULL-Prüfungen werden Bedingungen wie IS NULL oder IS NOT NULL verwendet.

WHERE kann einen OUTER JOIN verändern

Eine nachträgliche WHERE-Bedingung auf eine rechte Tabellenspalte kann die NULL-Zeilen eines LEFT JOIN entfernen. Dadurch kann das Ergebnis unbeabsichtigt wie ein INNER JOIN wirken.

Typische Einsatzbeispiele für JOIN-Abfragen

  • Kunden mit den zugehörigen Bestellungen verbinden
  • Mitarbeitende ihren Abteilungen oder Standorten zuordnen
  • Produkte mit Kategorien, Preisen oder Lagerbeständen kombinieren
  • Rechnungen mit Zahlungen und offenen Beträgen abgleichen
  • Fehlende Beziehungen und verwaiste Fremdschlüssel erkennen
  • Datensätze aus zwei Systemen vollständig gegenüberstellen

Häufige Fragen zu SQL JOINs

Was ist ein SQL JOIN?

Ein SQL JOIN verbindet Zeilen aus mindestens zwei Tabellen anhand einer festgelegten Bedingung. Häufig wird dabei ein Primärschlüssel der einen Tabelle mit einem Fremdschlüssel der anderen Tabelle verglichen.

Was ist der Unterschied zwischen INNER JOIN und LEFT JOIN?

Ein INNER JOIN gibt nur passende Datensatzkombinationen aus. Ein LEFT JOIN behält zusätzlich alle Datensätze der linken Tabelle. Fehlen passende rechte Werte, werden die rechten Spalten mit NULL gefüllt.

Warum entstehen beim JOIN mehr Zeilen als erwartet?

Enthält eine JOIN-Spalte denselben Schlüssel mehrfach, entsteht für jede passende Kombination eine eigene Ergebniszeile. Eine Eins-zu-viele-Beziehung vergrößert deshalb die Ergebnismenge.

Wann ist ein FULL OUTER JOIN sinnvoll?

Ein FULL OUTER JOIN ist hilfreich, wenn sowohl passende als auch fehlende Datensätze beider Tabellen sichtbar sein sollen. Das ist beispielsweise bei Datenabgleichen, Migrationen oder der Suche nach verwaisten Beziehungen nützlich.

Unterstützt MySQL einen FULL OUTER JOIN?

MySQL und MariaDB besitzen keinen direkten FULL-OUTER-JOIN-Befehl. Der gewünschte Effekt kann je nach Anwendungsfall mit LEFT JOIN, RIGHT JOIN und UNION nachgebildet werden.

Kann man mehr als zwei Tabellen verbinden?

Ja. Eine SQL-Abfrage kann mehrere JOIN-Klauseln hintereinander enthalten. Für jede weitere Tabelle wird eine passende Verknüpfungsbedingung benötigt.

Werden meine eingegebenen Tabellenwerte gespeichert?

Nein. Die Werte werden ausschließlich lokal im Browser verarbeitet. Das Tool übermittelt keine Tabelleninhalte an eine externe Datenbank, API oder einen anderen Server.

Ersetzt der Visualizer eine echte Datenbankabfrage?

Nein. Das Tool dient zum Lernen, Planen und Prüfen kleiner Beispieldaten. SQL-Dialekte, Kollationen, Datentypen, Datenbankindizes und komplexe Abfragepläne können sich in realen Systemen zusätzlich auf das Ergebnis und die Performance auswirken.

Hinweis zur Verwendung

Prüfen Sie erzeugte SQL-Abfragen vor dem Einsatz in produktiven Datenbanken. Verwenden Sie bei echten Anwendungen parametrisierte Abfragen und übergeben Sie Nutzereingaben nicht ungeprüft an eine Datenbank.

Mehr Tools & Rechner:

-

Übersicht:
Fachartikel
Verzeichnis
Über uns


it datenbanken99

Autoren Profil:
FB/Twitter