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
DISTINCToderGROUP BYarbeiten.
Weiterführend: SQL-Schnellreferenz und SQL-Befehle.