0Pricing
SQL Academy · Lektion

Funktionsweise von INNER JOIN

Verstehen Sie INNER JOIN als gefiltertes kartesisches Produkt, formulieren Sie Join-Bedingungen und lesen Sie EXPLAIN-Ausgaben für Joins.

Funktionsweise von INNER JOIN ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.

Der INNER JOIN

INNER JOIN gibt nur Zeilen zurück, für die in BEIDEN Tabellen ein passendes Paar existiert, basierend auf der ON-Bedingung.

Einfacher INNER JOIN

Rufen Sie jede Bestellung zusammen mit ihrem Benutzer ab:

SELECT o.id, o.total, u.email
FROM orders o
INNER JOIN users u ON u.id = o.user_id;

-- INNER is the default — you can also write:
SELECT o.id, o.total, u.email
FROM orders o
JOIN users u ON u.id = o.user_id;

Mehrere Bedingungen in ON

Die ON-Klausel ist ein gewöhnlicher boolescher Ausdruck:

SELECT *
FROM events e
JOIN sessions s
  ON s.user_id = e.user_id
 AND e.created_at BETWEEN s.start_at AND s.end_at;

Aliase

Aliase verkürzen Abfragen und vermeiden mehrdeutige Spaltenverweise:

SELECT o.id, u.email
FROM orders AS o          -- AS is optional
JOIN users  AS u ON u.id = o.user_id;

Drei oder mehr Tabellen verknüpfen

Verketten Sie Joins, indem Sie die JOIN-Klausel wiederholen:

SELECT o.id, u.email, p.name AS product
FROM orders   o
JOIN users    u ON u.id = o.user_id
JOIN products p ON p.id = o.product_id;

USING (column)

Wenn die Join-Spalte in beiden Tabellen denselben Namen hat, können Sie USING schreiben – dadurch wird die Spalte in der Ausgabe nur einmal aufgeführt:

SELECT o.id, total, email
FROM orders
JOIN users USING (user_id);   -- requires both tables to have user_id

NATURAL JOIN

Verknüpft anhand jeder Spalte mit demselben Namen – Vorsicht: Das ist instabil, wenn Spalten hinzugefügt werden.

-- Avoid in production code:
SELECT * FROM orders NATURAL JOIN users;

JOIN-Bedingungen vs. WHERE

Bei einem INNER JOIN ist eine Bedingung in ON logisch gleichbedeutend mit einer Bedingung in WHERE. Konvention: Filter, die die JOIN-Beziehung definieren, gehören in ON; Zeilenfilter gehören in WHERE.

SELECT * FROM orders o
JOIN users u ON u.id = o.user_id   -- join condition
WHERE u.country = 'US';            -- row filter

Vervielfachung von Ergebnissen

Wenn eine Zeile in A auf drei Zeilen in B passt, enthält das Ergebnis drei Zeilen. Das ist normal, kann aber überraschen, wenn Sie es vergessen. Beim Aggregieren sollten Sie COUNT(*) vorsichtig verwenden.

Vorschau auf Self-Join

Sie können eine Tabelle mit sich selbst verknüpfen, indem Sie jeder Instanz einen anderen Alias geben:

SELECT e.full_name AS employee, m.full_name AS manager
FROM employees e
JOIN employees m ON m.id = e.manager_id;

Performance von INNER JOINs

Inner Joins sind schnell, wenn:

  • Die Join-Spalte indiziert ist (besonders auf der FK-Seite)
  • Eine Tabelle klein ist (Hash-Join) oder beide Tabellen sortiert sind (Merge-Join)
  • Sie früh filtern, damit die Anzahl der Zeilen in Zwischenergebnissen gering bleibt

Zusammenfassung

INNER JOIN behält nur passende Paare.

  • JOIN entspricht standardmäßig INNER JOIN
  • ON beschreibt die Join-Bedingung
  • Aliase halten Abfragen kurz
  • Join-Spalten sollten indiziert sein

Kurze Verständnisprüfung

Was gibt orders INNER JOIN users ON users.id = orders.user_id zurück, wenn eine Bestellung keinen passenden Benutzer hat (verwaister Datensatz)?

Häufig gestellte Fragen

Ist die Lektion „Funktionsweise von INNER JOIN“ kostenlos?

Ja — der vollständige Text von „Funktionsweise von INNER JOIN“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Funktionsweise von INNER JOIN“?

Verstehen Sie INNER JOIN als gefiltertes kartesisches Produkt, formulieren Sie Join-Bedingungen und lesen Sie EXPLAIN-Ausgaben für Joins. Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um SQL Academy zu starten?

Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Funktionsweise von INNER JOIN“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?

Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Warum Joins? (Wiederholung des relationalen Modells)
  2. Funktionsweise von INNER JOIN
  3. LEFT/RIGHT JOIN und OUTER Joins
  4. Self-Joins und Aliase
← Zurück zu SQL Academy