Junior
Was ist der Unterschied zwischen INNER JOIN und OUTER JOIN?
sobes.tech KI
Antwort von AI
INNER JOIN gibt nur die Zeilen zurück, die in beiden Tabellen gemäß der Verknüpfungsbedingung übereinstimmen. Wenn in einer der Tabellen kein entsprechender Eintrag vorhanden ist, wird diese Zeile nicht im Ergebnis angezeigt.
OUTER JOIN gibt alle Zeilen einer Tabelle und die entsprechenden der anderen zurück, und wenn keine Übereinstimmung besteht, sind die fehlenden Daten NULL. Es gibt drei Arten von OUTER JOIN:
- LEFT OUTER JOIN — alle Zeilen der linken Tabelle + die entsprechenden der rechten;
- RIGHT OUTER JOIN — alle Zeilen der rechten Tabelle + die entsprechenden der linken;
- FULL OUTER JOIN — alle Zeilen beider Tabellen, bei denen keine Übereinstimmung besteht, NULL.
Beispiel:
SELECT * FROM employees INNER JOIN departments ON employees.dept_id = departments.id;
-- gibt nur Mitarbeiter zurück, die eine Abteilung haben
SELECT * FROM employees LEFT OUTER JOIN departments ON employees.dept_id = departments.id;
-- gibt alle Mitarbeiter zurück, auch wenn sie keine Abteilung haben (in den Spalten departments wird NULL stehen)