SQL-JOINs richtig verstehen

Ein JOIN kombiniert Zeilen aus zwei Tabellen anhand einer Bedingung – meist eines Fremdschlüssels.

INNER JOIN

Nur Zeilen, die in beiden Tabellen passen:

SELECT u.name, o.betrag
FROM user u
INNER JOIN bestellung o ON o.user_id = u.id;

LEFT JOIN

Alle Zeilen aus der linken Tabelle, passende aus der rechten – sonst NULL:

SELECT u.name, o.betrag
FROM user u
LEFT JOIN bestellung o ON o.user_id = u.id;

RIGHT und FULL OUTER

RIGHT ist das Spiegelbild von LEFT. FULL OUTER gibt alle Zeilen beider Seiten – MariaDB/MySQL unterstützen das nicht direkt; man kombiniert LEFT und RIGHT mit UNION.

Praktische Tipps

  • Immer auf indizierte Spalten joinen (Fremdschlüssel).
  • Aliasse nutzen: FROM user u.
  • Bei 1:n-Beziehungen entstehen Duplikate – mit DISTINCT oder GROUP BY arbeiten.

Weiterführend: SQL-Schnellreferenz und SQL-Befehle.